Php SQL查询语法错误,不可能为负数?
我收到以下错误,该错误包含SQL语法问题。我不知道是什么问题,因为一切似乎都很好。我可以在$range\u start(-4)中看到一个负数。有什么问题吗?我应该在SQL查询中的负数处添加任何内容吗 (这是一种分页,在其他SQL查询中可以正常工作) 提前谢谢 错误:Php SQL查询语法错误,不可能为负数?,php,mysql,sql,Php,Mysql,Sql,我收到以下错误,该错误包含SQL语法问题。我不知道是什么问题,因为一切似乎都很好。我可以在$range\u start(-4)中看到一个负数。有什么问题吗?我应该在SQL查询中的负数处添加任何内容吗 (这是一种分页,在其他SQL查询中可以正常工作) 提前谢谢 错误: Array ( [0] => 42000 [1] => 1064 [2] => You have an error in your SQL syntax; check the manual
Array
(
[0] => 42000
[1] => 1064
[2] => You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''4'' at line 1
)
代码:
字符串需要用引号或撇号进行封装,这取决于字符串是用引号还是撇号构造的 在这种情况下,我建议如下:
'" . $range_start . "', '" . $range_end . "'
请注意撇号的前后用法。关键字
LIMIT
指定需要元素的子集$range\u start
是偏移量,即所需结果的第一个索引,而$range\u end
是所需的元素数。因此,这两个都需要是正整数,因此$range\u start
不能为负,因为您不能从-4开始加载元素。什么是类别=:类别
部分?这对我来说似乎很奇怪me@mituw16这就是PDO转义。啊,我明白了,我只使用过一两次PDO,通常使用mysqli编写的语句。谢谢啊,好的。我已将其更改为$getPostsByCategory=$this->db->prepare(“从文章中选择*,其中category=:category ORDER by date_created DESC LIMIT 0”“”,“$range_end”“”但是,我仍然得到以下错误:您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以了解在第行“4”附近使用的正确语法您还得到了什么?$range\u end的值是多少?range\u end的值是4。您不需要引号,因为4是一个数字。只需在查询结束时使用限制0,4。这是我的分页中的一个错误,我会看一看。
'" . $range_start . "', '" . $range_end . "'