【发布时间】:2023-04-06 18:38:01
【问题描述】:
for($nr = 0; $nr < 2; $nr++){
print $nr; print(gettype($nr)); // prints 0integer
$result = mysqli_query($con,"SELECT * FROM phcdl_files
ORDER BY file_id DESC LIMIT '$nr',1")
or die(mysqli_error($con));
}
尝试运行上面的查询,但由于语法问题,我遇到了麻烦。 但是在限制为 0,1 的 PhpMyAdmin 上运行它效果很好
知道有什么问题吗?
【问题讨论】:
-
它会给你错误吗?
-
您错误地在
$nr值周围加上了引号。而是使用带参数的预处理语句。 -
@Dai:
LIMIT子句使用的绑定参数存在问题。只要它是一个整数 - 清理它并直接放入查询是微不足道的。 -
始终使用准备好的语句,以保护您免受sql注入。
-
@timh 虽然使用准备好的语句很棒,但我在此查询中看不到任何引起警报的原因.. 没有用户生成的数据,只有系统生成的整数.. 所以他不会受到 sql 注入的影响跨度>