0

我正在将 HEX 数据上传到 MySQL 数据库。

$sql= "INSERT into MyTable VALUES ($date,$data)";
if (mysqli_query($con,$sql)) {
    echo "success";
} else {
    echo "failed". mysqli_error($con);
}

这里$data是十六进制数据,该数据27相当于 ASCII 中的 '。所以我收到一个错误

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“xxxxxxxxxx”附近使用正确的语法。

我该如何解决这个问题?

4

4 回答 4

3

查看mysql_real_escape_stringmysqli_prepare以保护您的查询。您的问题是您将原始数据直接转储到 SQL 中。它不仅会导致您出错,而且还非常不安全

于 2013-07-29T12:46:07.153 回答
2

在变量周围加上单引号

$sql= "INSERT into loco54321 VALUES ('$date','$data')";<br>
于 2013-07-29T12:45:27.433 回答
1

您需要转义字符串中的撇号,尝试阅读以下内容:

http://php.net/manual/en/function.mysqli-escape-string.php

于 2013-07-29T12:45:24.840 回答
-1

您需要在表中指定您尝试输入数据的列

    INSERT INTO table_name (column1, column2, column3,...)
    VALUES (value1, value2, value3,...) 
于 2013-07-29T12:48:17.307 回答