私は次のようなmysqlクエリを持っています
mysql_query("select * from user where name='$name' LIMIT 1");
クライアント側からの入力が「John」であるとすると、クエリにMySQLエラーが発生します。これを防ぐためのベストプラクティスは何ですか?
私は次のようなmysqlクエリを持っています
mysql_query("select * from user where name='$name' LIMIT 1");
クライアント側からの入力が「John」であるとすると、クエリにMySQLエラーが発生します。これを防ぐためのベストプラクティスは何ですか?
試す:
$query = sprintf("select * from user where name='%s', mysql_real_escape_string($name));
$result = mysql_query($query);
$ nameにあなたが考えていることを含めてください(確認のためにエコーしてください)。
最初は、mysql_ *関数は非推奨であり、代わりにPDOまたはmysqli_を使用する必要があります。この2つのライブラリは、入力を自動的にエスケープするプリペアドステートメントを実装しています。
代わりにmysql_*を使用する場合はmysql_real_escape_string
、渡されたvarを呼び出す必要があります
mysql_query("select * from user where name='" . mysql_real_escape_string($name) . "' LIMIT 1");