Skip to content

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

Open
@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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions