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
对每个变量使用对我来说似乎有点矫枉过正。
你怎么看?