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