在开始之前,我查看了许多其他帖子,但没有一个确实有帮助。
我得到了一个" SQLSTATE [42000]:语法错误或访问冲突"错误。此错误是由此行引起的:
$sql2 = $database->query("SELECT * FROM `users` LIMIT $limit");
$ limit是:
$limit = ($page_id-1)*$itemsPerPage.','.$itemsPerPage;
我的完整错误:
致命错误:未捕获的异常' PDOException' with message' SQLSTATE [42000]:语法错误或访问冲突:1064 SQL语法中有错误;检查与您的MySQL服务器版本对应的手册,以便在' -10,10'附近使用正确的语法。在第1行'在C:\ xampp \ htdocs \ pdo \ index.php:76堆栈跟踪:#0 C:\ xampp \ htdocs \ pdo \ index.php(76):PDO->查询(' SELECT * FROM` ......')在第76行的C:\ xampp \ htdocs \ pdo \ index.php中抛出#1 {main}
我花了很长时间试图解决这个问题。我尝试过没有$ limit的查询。但这不起作用。
以下是我如何进行for循环:
$limit = ($page_id-1)*$itemsPerPage.','.$itemsPerPage;
$sql2 = $database->query("SELECT * FROM `users` LIMIT $limit");
while($row = $sql2->fetch(PDO::FETCH_OBJ)) {
//My stuff in here
}
如果有人可以提供任何帮助,那就太棒了。谢谢!
答案 0 :(得分:0)
LIMIT
参数的计算是不明确的。
在这一行:
$limit = ($page_id-1)*$itemsPerPage.','.$itemsPerPage;
如果$page_id
未定义或为零,则您的第一个词变为负数,并导致限制子句LIMIT -10,10
,这是导致语法错误的原因。
确保$page_id
具有您认为的值。
答案 1 :(得分:0)
您需要使用1初始化$page_id
,我认为第一次没有定义:
if (!isset($page_id)) $page_id = 1;
$limit = ($page_id-1)*$itemsPerPage.','.$itemsPerPage;
$sql2 = $database->query("SELECT * FROM `users` LIMIT $limit");