php挿入特殊シンボルデータを含む処理方法

1680 ワード

問題を発見する
mysqlにデータを書き込むと、データに特殊な文字があると、次のようなデータが正常に入庫できない場合があります.

mysql_query(”update table set `name`='make's'”);

この場合、addslashes()という関数を使ってデータの特殊文字を変換するのが一般的です.
処理方法
PHPはセキュリティのためにmagic_quotes_gpc = Onの機能を導入しており、何の処理もせずに直接データベースに一重引用符を挿入することができるので、Offの場合は、実行環境を信頼するのではなく、一重引用符の問題を考慮する必要があります.magic_quotes_gpc = Onの場合、addslashes()を用いて処理されたデータはデータベースに'として保存され、このとき直接出力すると、自分が期待していた内容よりも多くの\が発見されるため、stripslashes()が登場し、それを削除することができる(str_replace(”\”, “”,$Str)と区別).magic_quotes_gpc = Offの場合、addslashes()を使用して処理されたデータはデータベースに'形式で保存され、上記のようなの問題はなく、addslashes()はデータを挿入してもエラーが発生しない役割を果たし、このとき直接出力すればデータは正常である.stripslashes()は不要です.addslashes()stripslashes()は正反対で、直接記憶:addslashes()にを追加し、stripslashes()にを削除します.
では、いつ使いますか.
簡単に言えば、magic_quotes_gpc = Onの場合、システムは自動的に単一引用符などの問題を処理し、addslashes()stripslashes()を使わなくても大丈夫ですが、データを追加するときにaddslashes()を使った場合、データを表示するときはstripslashes()を必要とします.magic_quotes_gpc = Offの場合、システムは単一引用符などの問題を処理しないので、データを挿入するときはaddslashes() を使用し、データを表示するときはstripslashes() を使用する必要はありません.
分析がある以上、プログラムを作るときはどうすればいいですか.以上の2つの状況により、magic_quotes_gpcがOnであれOffであれ、データを追加するときはaddslashes()を使用します.Onの場合はstripslashes() を使用しなければなりません.Offの場合はstripslashes() を使用できません.
まとめ
以上はこの文章のすべての内容で、本文の内容がみんなの学习あるいは仕事に対して一定の助けをもたらすことができることを望んで、もし疑问があればみんなは伝言を残して交流することができます.