将二进制数据插入数据库时​​出错

时间:2015-10-01 00:00:14

标签: php mysql

我的php脚本中出现此错误:

您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在第1行“M Uɽɽ”附近使用正确的语法

和我的代码:

$Connection = mysql_connect("127.0.0.1", "root", "12345678");
mysql_select_db("database5", $Connection);

$Hashsz = "FF381278A9AB19274D9755C9BDDE8A82";
$HashBin = pack("H*", $Hashsz);

$Query = "INSERT INTO Hashes (Hash) VALUES ('{$HashBin}')";
if(mysql_query($Query, $Connection))
{
    echo "inserted";
}
else
{
    echo mysql_error();
}

值类型为:binary(16)

为什么?

1 个答案:

答案 0 :(得分:0)

使用旧的mysql扩展程序,您应该使用mysql_real_escape_string来转义$HashBin。更好的是你应该使用预准备语句和参数化查询。阅读“How can I prevent SQL-injection in PHP?”问题。