私に助言してもらえますか?私は質問を探しましたが、私のものと似た何かを見つけませんでした。ユーザー入力のSQLエスケープ
SQLクエリで使用するときにユーザー入力を自動的にエスケープするにはどうすればよいですか?私は、私は
をmysql_real_escape_stringの実行しかし、私は同様にSQLクエリで自動エスケープを設定することはできませんエスケープメソッドを使用したデータベースのクラスを持っていると仮定すると
$var_x = $DB->Escape($_POST['var_x']);
$another_var = $DB->Escape($_POST['another_var']);
$some_string = $DB->Escape($_POST['some_string']);
...
ようなもので満たされた私のコードでは好きではありませんそれは挿入クエリを破るためです:
function Exec($sql){
$result = mysql_query($this->Escape($sql));
}
$q = $DB->Exec("SELECT * FROM table WHERE id = 'xxx'");
それは\ 'xxx \'になります。これは間違っています。
最後に私がやりたいことは、システムをより複雑にするため、パラメータ化された文を作ることです。他に何も残らないときはこのオプションを検討します。
簡潔に言うと、全体のクエリで機能し、値だけをエスケープするスマートな自動エスケープを作成する方法は?
ありがとう、私はそれに行きます。 –