我有错误 在{$ path}中调用boolean上的成员函数fetch() 当我使用LIMIT $ var或OFFSET $ var时 但如果我要删除'... OFFSET。 $ offset'我不会收到错误。
public static function getConnection(){
$paramsPath = ROOT.'/config/db_params.php';
$params = include($paramsPath);
$dsn = "mysql:host={$params['host']};dbname={$params['dbname']}";
$db = new PDO($dsn, $params['user'], $params['password']);
$db->exec("set names utf8");
return $db;
}
public static function getTask($page = 1){
$page = intval($page);
$offset = ($page - 1) * 3;
$db = Db::getConnection();
$taskList = [];
$result = $db->query('SELECT id, user_name, user_email, title, image, tasktext, status FROM task '
. 'ORDER BY id DESC LIMIT 3 OFFSET'.$offset );
$i = 0;
while ($row = $result->fetch()) {
$taskList[$i]['id'] = $row['id'];
$taskList[$i]['user_name'] = $row['user_name'];
$taskList[$i]['user_email'] = $row['user_email'];
$taskList[$i]['title'] = $row['title'];
$taskList[$i]['image'] = $row['image'];
$taskList[$i]['tasktext'] = $row['tasktext'];
$taskList[$i]['status'] = $row['status'];
$i++;
}
return $taskList;
}
有人可以解释为什么会发生这种情况以及如何解决这个问题?我真的需要一个OFFSET才能进行分页。
答案 0 :(得分:0)
您的查询格式错误。在数字前面OFFSET
之后需要一个空格:
$result = $db->query('SELECT id, user_name, user_email, title, image, tasktext, status FROM task '
. 'ORDER BY id DESC LIMIT 3 OFFSET '.$offset );