MYSQL间隔查询SQL注入


MYSQL interval query SQL injection

我有一个简单的MYSQL查询:

SELECT * FROM table WHERE date > now() - INTERVAL $hours HOUR

$hours是一个PHP GET变量。在查询中使用此变量之前,我是否必须对其进行任何检查以避免SQL注入,或者它是否足够安全?我使用PDO语句

这样的东西会很好:

$sth = $Db->dbh->prepare("SELECT * FROM 'table' WHERE date > now() - INTERVAL :hours"); $sth->execute(array(':hours'=>$hours,':secondThing'=>$variable));

这是一种解除你的关系的方法。这可能与您的代码不同,但执行和查询中的数组将是相同的(如果您使用PDO。)

使用准备好的语句

请参阅如何防止PHP中的SQL注入?

也许您直接从$_POST或$_GET 获取变量

$unsaf_variable=$_POST['user_input'];