function Query()
{
$args = func_get_args ();
if (sizeof ($args) > 0)
{
$query = $args[0];
for ($i = 1; $i < sizeof ($args); $i++)
$query = preg_replace ("/\?/", "'" . mysql_real_escape_string ($args[$i]) . "'", $query, 1);
}
else
{
return FALSE;
}
私はこのような機能を持っています。基本的に、次のようなクエリを作成します。
$this->Query('SELECT * FROM USERS WHERE Username = ? AND Points < ?', $username, $points);
現在、非推奨の機能をサポートしていますが、私のクラスで置き換えるのと同じくらい簡単にmysql
適応できます。mysqli
mysql
mysqli
これは、SQL インジェクション攻撃に対して信頼できる安全なアプローチですか? すべてのクエスチョン マークは によって自動的にサニタイズされてmysql_real_escape_string
おり、これまで問題はありませんでしたがmysqli_real_escape_string
、サニタイズに使用する必要がありますか?
mysqli の準備済みステートメントについては知っていますがbindParam
、変数ごとに使用するのは少しやり過ぎのようです。
どう思いますか?