Skip to content

MySQL query returns "(1835) Malformed communication packet." #3774

@Srlion

Description

@Srlion

I have found these related issues/pull requests

N/A

Description

Second query returns that error
(1835) Malformed communication packet.

It should return a MySQL error but it returns that message, it only happens if you supply no parameters when it expected parameters.

Reproduction steps

main.rs

use sqlx::mysql::MySqlConnection;
use sqlx::{Connection, Error};

#[tokio::main]
async fn main() -> Result<(), Error> {
    let database_url = "";

    let mut conn = MySqlConnection::connect(database_url).await?;

    sqlx::query("CREATE TABLE IF NOT EXISTS test_table (id INTEGER PRIMARY KEY AUTO_INCREMENT, value TEXT);")
        .execute(&mut conn)
        .await?;

    let res = sqlx::query("INSERT INTO`test_table`(`value`,`id`)VALUES('test',?)ON DUPLICATE KEY UPDATE`value`=VALUES(`value`);").execute(&mut conn).await;

    println!("Query result: {:?}", res);

    Ok(())
}

Cargo.toml

[package]
name = "sqlx-bug"
version = "0.1.0"
edition = "2021"

[dependencies]
tokio = { version = "1.43.0", default-features = false, features = [
    "rt-multi-thread",
    "macros",
] }
anyhow = "1.0.96"
sqlx = { version = "0.8.3", features = [
    "runtime-tokio",
    "tls-native-tls",
    "mysql",
    "rust_decimal",
    "chrono",
] }

SQLx version

0.8.3

Enabled SQLx features

"runtime-tokio", "tls-native-tls", "mysql", "rust_decimal", "chrono",

Database server and version

MySQL 8.0.4

Operating system

Windows

Rust version

rustc 1.84.1

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions