それ自体は、これで問題なく動作するはずです。しかし、個人的には、まったく使用しないことをお勧めしますmysql_real_escape_string
。mysql_*
非推奨になっている拡張機能を使用していると考えるのは正しいと思います。自分に有利に働き、またはのいずれPDO
かmysqli_*
に切り替えてください。できれば PDO に切り替えてください。
これらは、準備されたステートメントをサポートする、より最新の拡張機能です。いくつかのリンクについては、
こちらの回答を参照してください。また、準備されたステートメントが手動でデータをエスケープするよりもはるかに安全な理由については、Bobby テーブルを参照してください。
@phant0m が言うように: の使用はmysql_real_escape_string
完全な証拠ではありません (彼のコメントのリンクを参照してください)。strip_tags
特に andのような関数を使用する場合、いくつかの落とし穴がありstripslashes
ます。データを処理しているとき、ある時点でデータに , のようなものが含まれていることは想像にFoo\'s Bar
難くありません。
magic_quotes_sybase がオンの場合、バックスラッシュは削除されませんが、代わりに 2 つのアポストロフィが 1 つに置き換えられます。
の結果がどうなるかを考えてみてくださいstripslashes(mysql_real_escape_string($data));
...
を使用する場合、許容されるタグがその属性を保持することstrip_tags
に注意することが重要です。これには、スラッシュ、コロン、セミコロン、ダッシュ、引用符、およびクエリを台無しにしたくないその他のさまざまな文字が含まれる場合があります...その他の考えられる問題についてで、この投稿を見てください
strip_tags