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一样容易。mysqlmysqli
这是一种依靠 SQL 注入攻击的安全方法吗?每一个问号都会被自动清理mysql_real_escape_string,我以前从未遇到过问题,但我应该mysqli_real_escape_string用于清理吗?
我知道 mysqli 的准备好的语句,但bindParam对每个变量使用对我来说似乎有点矫枉过正。
你怎么看?