0

私は次のようなmysqlクエリを持っています

mysql_query("select * from user where name='$name' LIMIT 1");

クライアント側からの入力が「John」であるとすると、クエリにMySQLエラーが発生します。これを防ぐためのベストプラクティスは何ですか?

4

2 に答える 2

1

試す:

$query = sprintf("select * from user where name='%s', mysql_real_escape_string($name));
$result = mysql_query($query);

$ nameにあなたが考えていることを含めてください(確認のためにエコーしてください)。

于 2013-02-17T11:12:40.203 に答える
1

最初は、mysql_ *関数は非推奨であり、代わりにPDOまたはmysqli_を使用する必要があります。この2つのライブラリは、入力を自動的にエスケープするプリペアドステートメントを実装しています。

代わりにmysql_*を使用する場合はmysql_real_escape_string、渡されたvarを呼び出す必要があります

mysql_query("select * from user where name='" . mysql_real_escape_string($name) . "' LIMIT 1");
于 2013-02-17T11:13:20.450 に答える