2

いくつかの SQL 挿入ステートメントを作成しようとしていますが、いくつかの変数には次のような名前が付いています。

  • "Aamma's Pastries"

'MySQL データベースに値を追加しているので、引用符 ( ) をエスケープしたいと考えています。PHPでそれを行うにはどうすればよいですか?

4

4 に答える 4

4

あなたはすでに答えを受け入れていますが、私はあなたにもっと良いアプローチを提案したいと思います。mysql_real_escape_stringのようなアプローチを使用するには、すべてのクエリで毎回それを適用することを常に覚えておく必要があります。それは退屈でエラーが発生しやすいです。

一貫性を保証するより単純なアプローチは、パラメーター化されたステートメントを使用することです。これにより、すべてが正しくエスケープされ、クエリに変数を埋め込む必要がなくなります。

PHPでは、これは新しいPDOまたはMySQLiライブラリで使用できます。これらの中で、私はそれが提供する柔軟性のためにPDOを好みます(たとえば、私は現在MySQLに固執していますが、アプリを永遠にそのように実行し続けるつもりはありません。PDOを使用すると、移行が大幅に簡素化されます)。それぞれの長所と短所をカバーするSOに関するたくさんの質問がここにあります。

于 2010-11-30T05:42:39.060 に答える
2

mysql_real_escape_stringを見てください

于 2010-11-30T04:44:47.093 に答える
1

準備ステートメントを使用して、mysql にエスケープ自体を処理させ、コード レベルで実行してください。

于 2010-11-30T06:05:55.353 に答える
-2

必要なすべての文字をエスケープするために使用できるこの関数があります。これはphpのコード例です

<?php
$str = "Is your name O'reilly?";

// Outputs: Is your name O\'reilly?
echo addslashes($str);
?>
于 2010-11-30T05:59:47.340 に答える