2

何をしmysql_escape_string()ますか?データベースを更新しています。私が使用しているときは$_POST('variable') 更新されていませんが、それを使用するとmysql_escape_string($_POST())正常に動作します。これをajaxで呼び出しています。

4

1 に答える 1

6

mysql_escape_stringPHP mysql 拡張関数の 1 つです。関数のパラメーターとして指定された文字列をエスケープします。エスケープとは、特殊文字の先頭にバックスラッシュ (\ ) を追加することを意味します。

  • mysql_escape_stringmysql_queryMySQL クエリ パラメータをクエリに安全に渡すために、関数と共に使用するように設計されています。安全とは、目的のクエリ動作に影響を与えたり変更したりする可能性がないことを意味します。MDN のSecure Development Guidelinesなど、「SQL インジェクション」を検索して詳細を確認してください。
  • エスケープされる特殊文字mysql_escape_stringは、ヌル バイト ( 0)、改行 ( \n)、キャリッジ リターン ( \r)、バックスラッシュ ( \)、一重引用符 ( ')、二重引用符 ( ")、および置換 ( SUB、または\032) です。この関数でエスケープされていません%_
  • mysql_escape_stringPHP 5.3.0 で非推奨になりました。mysql_real_escape_stringこれは、文字列をエスケープするだけでなく、接続の現在の文字セットを考慮に入れる関数に置き換える必要があります。
  • MySQLiまたはPDO_MySQL拡張機能の推奨される代替手段では、両方mysql_escape_stringを使用しないことをお勧めします。mysql_real_escape_string

あなたの場合、機能しない最も可能性の高い理由$_POST('variable')は、1 つ以上の特殊文字が含まれているため、実行している MySQL クエリが意図せずに変更され、壊れていることです。AJAX で呼び出しており、AJAX エラーを処理していない場合、エラー メッセージを表示できない場合があります。

于 2012-06-30T14:05:39.400 に答える