0

重複の可能性:
Mysql リアル エスケープ文字列 PHP 関数 My Field Entry に「\」を追加

これが取引です。ローカル サーバーとリモート サーバーがあり、どちらも 2 つの同一の mysql データベースに接続する同じ php ファイルを実行します。ローカル サーバーで、コマンド

mysql_query("INSERT INTO eventtypes (name) VALUES ('".addslashes($_GET['name'])."')")

魅力のように機能し、フィールドにスラッシュを挿入せず、$_GET['name'] の生の値のみを挿入します。ただし、リモート サーバーでは、スラッシュも挿入されています。私はこれらを試しました:

mysql_query("INSERT INTO eventtypes (name) VALUES ('".str_replace("'","''",$_GET['name'])."')

これは false を返しますが、対応するデータベースのコマンド ラインで正確に返された文字列を実行すると、適切な量の一重引用符が適切に挿入されますが、これは非常に奇妙です。

mysql_query("INSERT INTO eventtypes (name) VALUES ('".mysql_real_escape_string($_GET['name'])."')")

mysql_real_escape_string() は、addslashes() と同様に挿入された単一引用符にスラッシュのみを追加しました。

4

3 に答える 3