この記事では、php における addlashes()、mysql_real_escape_string()、mysql_escape_string() の使用法と違いについて簡単に紹介します。興味のある方は参照してください。
私はこれまでこの点にまったく注目したことがありませんでした。私が書いているときは、非常に単純な関数 addslashes() を使用しました。この関数は、指定された定義済み文字の前にバックスラッシュを追加します。
これらの事前定義された文字は次のとおりです:
•一重引用符 (')
•二重引用符 (")
•バックスラッシュ ()
•NULL
コードは次のとおりです | コードをコピー |
関数 as_array(&$arr_r)
|
もちろん、addslashes は、マルチバイト文字の処理に使用されます。mysql_real_escape_string を使用します。
コードは次のとおりです
} その他 {
$lastname = $_POST[‘lastname’]; | magic_quotes_gpc がすでに開いているときに $_POST['lastname'] を確認するのが最善です。
mysql_real_escape_string は (PHP 4 >= 4.3.0、PHP 5) でのみ使用できます。 mysql_escape_string (PHP 4 >= 4.0.3、PHP 5、注: このメソッドは PHP5.3 で非推奨になったため、推奨されません)、
// 説明: array_map() を使用して mysql_real_escape_string を呼び出し、配列をクリーンアップします
// 構成: http://www.bKjia.c0m
関数 mysqlClean($data)
{
return (is_array($data))?array_map('mysqlClean', $data):mysql_real_escape_string($data);
}
?>
2 つの違いは次のとおりです。mysql_real_escape_string は接続の現在の文字セットを考慮しますが、mysql_escape_string は考慮しません。
PHPコード
コードは次のとおりです
If(function_exists('mysql_escape_string')){
return mysql_escape_string($str); |