phpを使用して特殊な記号を含むデータを挿入する必要がある場合、データが正常に挿入できないことがわかります。このとき、どうすれば解決できますか?最近仕事でこの問題に遭遇したので、情報を検索して解決しました。困っている友達はそれを参考にしてください。
問題が見つかりました
mysql にデータを書き込むとき、データに次のような特殊文字がある場合、データは正しく保存されません:
mysql_query(”update table set `name`='make's'”);
現時点では、データ内の特殊文字をエスケープするには、addslashes()
関数を使用するだけです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()
。
既然有了分析,做程序时要怎么办呢?根据以上两种情况,可得:
不管magic_quotes_gpc
是On还是Off,咱添加数据时都用addslashes()
,当On时,必须使用stripslashes()
,Off时则不能用stripslashes()
処理メソッド
magic_quotes_gpc = On コードの関数を導入しました> は処理を行わずに一重引用符をデータベースに直接挿入できるため、オフに関しては、動作環境を盲目的に信頼するのではなく、一重引用符の問題を考慮する必要があります。 <p><a href="http://www.php.cn/php-weizijiaocheng-397857.html" target="_blank"></a><code>magic_quotes_gpc = On
の場合、addslashes()
で処理したデータは、この時に直接出力すると、「」の形式でデータベースに保存されます。予想していたよりも多くのコンテンツがあることが判明したため、stripslashes()
が表示され、それを削除できます (str_replace("", "",$Str)
とは異なります) >) 。 magic_quotes_gpc = Off
の場合、addslashes()
を使用して処理されたデータは、上記の問題が発生することなく、「」の形式でデータベースに保存されます。このとき、addslashes()
はエラーなくデータを挿入する役割を果たします。このとき直接出力すると、データは正常になります。 stripslashes()
を使用する必要はもうありません。 addslashes()
と stripslashes()
はまったく逆です。 ダイレクト メモリ: addslashes()
を 1 つ追加します。stripslashes( )
magic_quotes_gpc = On
の場合、システムは一重引用符などの問題を自動的に処理します。addslashes()
や stripslashes() は問題ありませんが、データを追加するときに addslashes()
が使用される場合、データを表示するときに stripslashes()
を使用する必要があります magic_quotes_gpc = Off
の場合、システムは一重引用符などの問題を処理しないため、データを挿入するときに addslashes()
を使用する必要がありますが、使用する必要はありません。データを表示する場合は、stripslashes()
。
magic_quotes_gpc
がオンかオフかに関係なく、データを追加するときに addslashes()
を使用します。 オンの場合、 stripslashes() を使用する必要があります。オフの場合、 stripslashes()
は使用できません。 🎜🎜以上がこの記事の全内容です、皆様の学習のお役に立てれば幸いです。 🎜🎜🎜🎜🎜関連する推奨事項: 🎜🎜🎜PHP は時間の加算および減算関数 strtotime の使用を実装します🎜🎜🎜🎜🎜🎜php🎜単純な Web 計算機関数を実装する方法🎜🎜🎜🎜🎜PHP は次の階乗を見つけます番号再帰関数メソッド 🎜🎜🎜🎜🎜🎜🎜🎜🎜 に基づいています以上がPHPに特殊記号を含むデータを挿入する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。