-2

を使用して、MySql db にアポストロフィを含む値を挿入できます。

 //will try to insert the word //test'testa
 $escapedWord = $mysqli->real_escape_string($word);
 $queryInsert = "INSERT INTO myTable (theWord) VALUES ('$escapedWord')";

単語は次のようにデータベースに挿入されています: test'testa (私が手動で確認したように)

ただし、DB から同じ値を取得しようとすると、次のエラーが発生します。

私が使用しているクエリは次のとおりです。

$query = "SELECT * FROM myTable where id = '$id'";

$result = $mysqli -> query($query ) or die($mysqli -> error . LINE );

SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルを参照して、235 行目挿入エラーの近くで使用する正しい構文を確認してください。

何を使おうかな?

4

1 に答える 1

0

アポストロフィをエスケープする必要があります。問題を解決するには、パラメーター化されたクエリ、または mysql_real_escape またはその他の可能性を使用してください。仕事をうまく行えば、SQL インジェクションから身を守ることもできます。

于 2013-10-12T18:06:11.457 に答える