2

ここで奇妙な状況になりました。私のローカル mysql データベース (v5.1.41) では、ユーザーの引用構文を問題なく処理するには、このエスケープ コマンドを使用する必要があります。ただし、Web サーバーの mysql データベース (v5.0.91-community) ではこのコマンドを使用できません。このコマンドを Web サーバー (Apache v2.2.13) で使用すると、ユーザーの引用構文に余分なスラッシュ構文が追加されるため、mysql_real_escape_string コマンドを削除すると、引用符を含む入力がデータベースに挿入されても問題は発生しません。

だから私は、php とは別に、Apache (v2.2.13) または mysql 自体に、PHP の mysql_real_escape_string コマンドなどの引用構文を自動的に処理できる設定があるのではないかと考えていました。

前もって感謝します

4

3 に答える 3

6

これはおそらくMagic Quotesによるものです。それらを無効にするか削除します。これらは善意の機能ですが、迷惑な機能でもあります。

于 2010-10-27T07:00:34.940 に答える
2

これは、サーバーでphp設定magic_quotes_gpcが有効になっていることを意味します。コードの先頭にあるスラッシュを削除することにより、回避する方法があります。

<?php
if (get_magic_quotes_gpc()) {
    function magicQuotes_awStripslashes(&$value, $key) {$value = stripslashes($value);}
    $gpc = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
    array_walk_recursive($gpc, 'magicQuotes_awStripslashes');
}
于 2010-10-27T07:02:42.797 に答える
0

filter_inputを使用してユーザー データを取得することをお勧めします。これは、magic_quotes を気にしないためです。パラメーター化されたクエリを使用してデータベース ジョブを実行します ( mysqliまたはPDOを参照)。

于 2010-10-27T07:14:24.217 に答える