douxie4583 2015-10-01 00:00
浏览 116
已采纳

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

I'm getting this error in my php script:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'M�Uɽފ�')' at line 1

and my code:

$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();
}

the value type is: binary(16)

why?

  • 写回答

1条回答 默认 最新

  • dqvj51875 2015-10-01 00:12
    关注

    With old mysql extension you should use mysql_real_escape_string to escapes your $HashBin. Even better you shoud use prepared statements and parameterized queries. Read "How can I prevent SQL-injection in PHP?" question.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?