2

エスケープされていない文字列でmysql_real_escape_stringを使用している場合、データベース内のデータはバックスラッシュ付きで保存されますが、これは発生しないはずです。

magic_quotes_gpcがオフになっているので、なぜこれが発生しているのかわかりません。何か案が ?

変更が必要なmysqlデータベースの設定はありますか。

コードのどこにもaddslashesを使用していません。PHP言語。

助けてください。

4

3 に答える 3

2

magic_quotesにはいくつかのバリエーションがあり、それらはすべて非常に侵襲的であり、オーバーライドすることはできません。その余分なエスケープがDBMSによって行われている可能性は低いと思います。

mysql_real_escape_string()を適用する前に、データがどのように見えるかを確認しましたか?すでに何らかの方法でエスケープされているに違いありません。

C。

于 2010-05-14T11:55:47.277 に答える
0

stripslashes()は、PHPディレクティブmagic_quotes_gpcがオン(デフォルトではオン)であり、エスケープが必要な場所(データベースなど)にこのデータを挿入していない場合です。たとえば、HTMLフォームから直接データを出力するだけの場合です。

<?php
$str = "Is your name O\'reilly?";

// Outputs: Is your name O'reilly?
echo stripslashes($str);
?>

ストリップスラッシュを使用する場合、入力はどのようになりますか。必要な形式になりますか?これは、入力に問題があるかどうかを確認するためのものです。

mysql_real_escape_stringを適用しないと、データはblackSlashesなしで保存されると言ったので...そしてそれを適用した後はblackslashを取得します...私は個人的に、どこかにaddslashesを適用しているかどうかコードを再確認します。

いくつかの質問...

  1. これは、この現在の関数でのみ発生しますか?
  2. magic_quotes_gpcがオンまたはオフになっていることを確認してください。
  3. この問題の原因となっている関数の一部を投稿できますか。
于 2010-05-14T12:23:41.457 に答える
0

答えは簡単です。変更が必要な mysql データベースの設定はありません。それはあなたのコード/設定です。

オンになっていて magic_quotes_gpc再確認する必要があるか、コードの一部で別のスラッシュが行われています。

于 2010-05-14T12:21:14.090 に答える