ホームページ  >  記事  >  バックエンド開発  >  PHPに特殊記号を含むデータを挿入する方法

PHPに特殊記号を含むデータを挿入する方法

墨辰丷
墨辰丷オリジナル
2018-05-30 15:28:021779ブラウズ

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()

処理メソッド

PHP は、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()

🎜🎜分析ができたので、プログラムを実行するときに何をすべきでしょうか?上記の 2 つの状況によれば、次のことが得られます: 🎜🎜🎜 magic_quotes_gpc がオンかオフかに関係なく、データを追加するときに addslashes() を使用します。 オンの場合、 stripslashes() を使用する必要があります。オフの場合、 stripslashes() は使用できません。 🎜🎜以上がこの記事の全内容です、皆様の学習のお役に立てれば幸いです。 🎜🎜🎜🎜🎜関連する推奨事項: 🎜🎜🎜PHP は時間の加算および減算関数 strtotime の使用を実装します🎜🎜🎜🎜🎜🎜php🎜単純な Web 計算機関数を実装する方法🎜🎜🎜🎜🎜PHP は次の階乗を見つけます番号再帰関数メソッド 🎜🎜🎜🎜🎜🎜🎜🎜🎜 に基づいています

以上がPHPに特殊記号を含むデータを挿入する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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