1064:您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第4行的''附近使用正确的语法。选择a。* FROM
ws_items
a WHERE 1 ANDenabled
= 1 AND {{ 1}} = 1 ORDER BYvisible
DESC LIMIT 0,
我搜索了网站,但没有一个符合我的查询。我不知道如何使用mysql,但我真的需要解决这个问题... 也许这里有人知道解决方案
created
答案 0 :(得分:0)
如果您有一种安全的方法来创建阻止SQL注入的$filter
,那么请尝试将其更改为:
$sql = "SELECT a.* FROM
`".DB_PREFIX."items` a WHERE 1=1 $filter
ORDER BY `created` DESC
LIMIT ".($_SESSION['itemsPerPage']*($page-1)).",".($_SESSION['itemsPerPage']+0);
如果您的查询以LIMIT 0
结尾,那么它将不会返回任何行,如果它以LIMIT 0,
结束,那么它在语法上确实不正确。
您需要确保您有偏移值。
我已经调整了查询以向偏移量添加零,因此它现在应该以{{1}}结束,但要注意这不会返回任何行。我猜你的会话变量没有值。
为什么不按照@VMai的建议尝试LIMIT 0,0
?
编辑:我敢打赌,var_dump($_SESSION['itemsPerPage']);
是在您第一次引用后设置的。因此,当您第一次加载页面时,它会失败,然后当您刷新时,该值就存在并且可以正常工作。
答案 1 :(得分:0)
我认为正在发生的是
$_SESSION['itemsPerPage']
为空,当乘以$page - 1
时,它被转换为0,因此它在查询中评估为0,但是当在末尾连接时,只会产生任何导致语法错误的内容。 LIMIT条款:
DESC LIMIT 0,