MySQL エスケープ処理の基本と安全な使い方
MySQLでは、文字列をエスケープするためにmysql_real_escape_string()関数を使用することができ、SQLインジェクション攻撃を防ぐことができます。この関数は特殊文字(シングルクォート、ダブルクォート、バックスラッシュなど)をエスケープして、SQL文の一部と誤解されることなく正しく認識されるようにします。こちらが簡単な例です:
<?php
// 连接到数据库
$link = mysql_connect('localhost', 'root', 'password');
mysql_select_db('my_database', $link);
// 需要转义的字符串
$string = "It's a test";
// 进行转义
$escaped_string = mysql_real_escape_string($string);
// 构建SQL查询语句
$query = "INSERT INTO my_table (my_column) VALUES ('$escaped_string')";
// 执行查询
mysql_query($query, $link);
// 关闭数据库连接
mysql_close($link);
?>
上記の例で、mysql_real_escape_string()関数は文字列”It’s a test”をエスケープし、エスケープされた文字列がデータベースに挿入され、SQL構文のエラーやSQLインジェクション攻撃が発生しないようになります。したがって、ユーザーからの入力データを使用してSQLステートメントを構築する場合は、mysql_real_escape_string()関数を使用して文字列をエスケープすることをお勧めします。