PHPサンプル
UPDATE:2017年09月19日
PHP 文字列のSQL文中の特殊文字をエスケープしたい
PHP5 PHP7
文字列のSQL文中の特殊文字をエスケープ mysqli_real_escape_string()
PHP で文字列や変数を結合する場合は、文字列演算子の「.(ドット)」と「.=(ドットイコール)」の2種類を使用します。
エスケープした文字列 = mysqli_real_escape_string(MySQLの接続変数, 入力文字列);
//返り値は文字列(string)
//返り値は文字列(string)
SQL 文中で使用する文字列の特殊文字をエスケープします。エスケープすることでMySQLで安全に利用できる文字列になります。
以下の特殊文字の前に「 \ (バックスラッシュ)」を負荷します。
以下の特殊文字の前に「 \ (バックスラッシュ)」を負荷します。
NUL (ASCII 0) と \n と \r と \ と ' と " と Control-Z
POINT
mysqli_real_escape_string() を使用する前にMySQLへの接続が確立されている必要があります。確立されていなければエラーが返ります。また、「MySQLの接続変数」の指定がない場合は直近のMySQL接続が使用されます。
注意
mysql_real_escape_string()が推奨です。
PHP 5.5.0 で非推奨となりました。
mysql_real_escape_string()が推奨です。
PHP 5.5.0 で非推奨となりました。
サンプルコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <!-- サンプルコード --> <h3>文字列のSQL文中の特殊文字をエスケープ「mysqli_real_escape_string()」 変換前</h3> <?php $queryString = "' OR ''='"; echo $queryString; ?> <h3>変換後 文字列のSQL文中の特殊文字をエスケープ「mysqli_real_escape_string()」</h3> <?php $queryString = "' OR ''='"; echo mysqli_real_escape_string(MySQLの接続変数, $queryString); ?> <br><br>※「\(バックスラッシュ)」が挿入されてエスケープされます。データベースに安全に格納することが出来ます。 |
実行結果
変換前 文字列のSQL文中の特殊文字をエスケープ「mysqli_real_escape_string()」
' OR ''='
' OR ''='
変換後 文字列のSQL文中の特殊文字をエスケープ「mysqli_real_escape_string()」
\' OR \'\'=\'
※「\(バックスラッシュ)」が挿入されてエスケープされます。
タグ(=記事関連ワード)
日付
投稿日:2012年3月4日
最終更新日:2017年09月19日
最終更新日:2017年09月19日
このカテゴリの他のページ
この記事へのコメント
トラックバックurl
https://wepicks.net/phpsample-string-mres/trackback/