【发布时间】:2016-04-02 11:44:46
【问题描述】:
尝试在数据库搜索中进行 php 分页时遇到语法错误。 我做错了什么?
功能:
public function searchItem1($search, $page) {
$limit = '5';
$start = ($page * $limit)-5;
echo $start;
$where = array();
$words = preg_split('/[\s]+/', $search);
array_unshift($words, '');
unset($words[0]);
$sqlstring = implode(" OR ", array_fill(0, count($words), "itemname LIKE ?"));
$sql = "SELECT * FROM item WHERE $sqlstring LIMIT ? OFFSET ?";
echo $sql;
$stmt = $this->db->prepare($sql);
foreach ($words AS $index => $word) {
$stmt->bindValue($index, "%" . $word . "%", PDO::PARAM_STR);
}
$stmt->bindValue($index + 1, $limit, PDO::PARAM_INT);
$stmt->bindValue($index + 2, $start, PDO::PARAM_INT);
$stmt->execute();
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
错误:
致命错误:带有消息的未捕获异常“PDOException” 'SQLSTATE[42000]: 语法错误或访问冲突:1064 你有一个 SQL 语法错误;检查与您对应的手册 MariaDB 服务器版本,用于在 ''5' OFFSET 0' 附近使用正确的语法 在 C:\xampp\htdocs\aDatabase2\class.user.php:312 中的第 1 行 跟踪:#0 C:\xampp\htdocs\aDatabase2\class.user.php(312): PDOStatement->execute() #1 C:\xampp\htdocs\aDatabase2\test.php(59): USER->searchItem1('dois', '1') #2 {main} 抛出 C:\xampp\htdocs\aDatabase2\class.user.php 在第 312 行
【问题讨论】:
-
回显
$sql和$sql1并将结果粘贴到问题中。 -
在第 2 行尝试
$limit = 5; -
限制可以是0,5
标签: php mysql pdo pagination