0

HEX データを MySQL データベースにアップロードしています。

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

ここ$dataに HEX データがあり、そのデータには27ASCII の ' に相当するものがあります。だから私はエラーが発生しています

SQL 構文にエラーがあります。1行目の「xxxxxxxxxx」付近で使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

この問題を解決するにはどうすればよいですか?

4

4 に答える 4

3

mysql_real_escape_stringとmysqli_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 に答える