ホームページ  >  記事  >  バックエンド開発  >  調べてみましたが、かなり複雑なようです。

調べてみましたが、かなり複雑なようです。

WBOY
WBOYオリジナル
2016-06-23 14:12:37993ブラウズ


私の考えを述べさせてください:
まず、MySQL のすべての種類のデータに一重引用符を追加できるかどうかはわかりません。試してみましたが、一重引用符を前後に追加しても問題ないようです。整数。
どのタイプのデータも一重引用符で囲むことができるということが本当の場合は、MySQL ステートメントを生成するときに任意のデータに一重引用符を追加し、mysql_escape_string を使用して受信した文字内のすべての特殊文字をエスケープします。このようにして、受信した文字列を一重引用符で完全に「制限」することができます。

しかし、like 節の後の文字列のエスケープが通常の文字列とは異なるようであるため、これもきっぱり不可能のようです。さらに、AMP の更新にエスケープが含まれる場合、問題が発生する可能性があります。これら 2 つの問題を完全に解決する方法はあるのでしょうか?他にご質問はありますか?

他のデータベース内のすべての種類のデータを一重引用符で囲むことはできますか?


ディスカッションへの返信(解決策)

mysqlには当然問題ありません
like節の後の文字列のエスケープ(%, ?)は一重引用符のエスケープとは関係ありません

互換性を持たせたい場合他のデータベースを使用する場合は、PDO を使用してデータベースを操作する必要があります。 PDO::quote はエスケープに使用されます (異なるデータベースのエスケープ文字も異なります)。PDO::prepare は明示的なエスケープなしでエスケープを行うことができます

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。