[英]PHP SQL Query Mystery
这种令人头疼的 sql 按摩 thrwos 没有错误,但是 $zvv 变量没有正确插入查询中,就像影响结果一样,好像它是 "" 什么都没有,但它确实有一个有效的字符串值,但它不是进入查询。
看到这个 sql 有什么问题吗?
$sqlQuery = " SELECT * FROM tbl_staff WHERE status =' " . $zvv . " ' limit
" . ($lowerLimit) . " , " . ($perPageCount) . " ";
尝试这个:
"SELECT * FROM tbl_staff WHERE status='$zvv' LIMIT
$lowerLimit , $perPageCount ";
应该做的伎俩。
您的串联中有空格。 此外,如果使用双引号,变量的内容将被打印出来。
$sqlQuery = "
SELECT *
FROM
tbl_staff
WHERE
status ='$zvv'
LIMIT
$lowerLimit , $perPageCount ";
您的查询中有空格:
$sql = " SELECT * FROM tbl_staff WHERE status =' " . $zvv . " ' limit " . ($lowerLimit) . " , " . ($perPageCount) . " ";
-----^ -----^
因此,如果$zvv
的值为'abc'
您在查询中使用它作为status=' abc '
,由于空格的原因,它是不一样的。 清理结果,这是我更喜欢的写法:
$sqlQuery = "SELECT * FROM tbl_staff
WHERE status='". $zvv ."'
LIMIT ". $lowerLimit.",".$perPageCount;
谢谢,这里有 2 只鸟,其中一些应该比我当前的查询更好,并且准备好的语句似乎是一种很好的永久方式,可以通过这种反复试验的方法克服摔跤角色,并且更安全地避免 SQL 注入风险。
这个错误以一种欺骗性的方式阻碍了例程的其余部分,在我仔细观察之前它似乎可以工作,因为这是我第一次弄乱 AJAX 和分页。
这个建议应该在未来极大地节省一些真正的 sql-roulette 头痛时间,它非常挑剔,但我现在明白为什么了。
谢谢大家。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.