データベースにアクセスするためにPDOを使用しているPHPスクリプトに問題があります。 prepare()
またはをPDOに使用すると、私の文字列をエスケープするPDOを取得できないようです。私は全面的に見てきましたが、PDOが自動的に文字列をエスケープするので、私はどこから見てもこの問題に対する答えは見つけられませんでした。 は、ここに私のコードです:PDO文字列引用符をエスケープしない
$statement = $db->prepare("INSERT INTO Table (ID, Column1, Column2) VALUES (NULL, '$var1', '$var2')");
$query->execute();
だが、問題は引用符がエスケープされていなかったので、私は、エラーメッセージが出ている$var1 = "abc'def"
と$var2 = "123"
を認めましょう。
エラー:SQLSTATE [42000]:構文エラーまたはアクセス違反:1064 はSQL構文にエラーがあります。ライン1
で「)、「DEF」 「123」を近く使用する権利構文についてはMySQLサーバのバージョンを に対応マニュアルを確認し、私はまたしてquery()
方法が、同じprpblemを使用して試してみました引用符。 私は本当に理解していない、それはイライラしています。助けてくれてありがとう。
[examples](http://ca.php.net/pdo.prepare)をご覧ください。 – netcoder