Есть код:
$query = "SELECT *
FROM articlePrev
WHERE articletype = ?
ORDER BY date DESC
LIMIT ?,?";
$stmt = $this->pdo->prepare($query);
$stmt->execute(array(1,1,5));
return $stmt->fetchAll(PDO::FETCH_ASSOC);
Который должен возвращать пять первых строк из базы, но в итоге он возвращает пустой массив. Если подставить параметры напрямую, вот так:
$query = "SELECT *
FROM articlePrev
WHERE articletype = 1
ORDER BY date DESC
LIMIT 1,5";
То записи выводятся. Что я делаю не так?
Ну, array в основном используется при INSERT.
Например:
$len = count($manga_paragraf_name_a);
$dbSet = $db->prepare('INSERT INTO m_paragraf (id_main, name, src_original)
VALUES (:id_main, :name, :src_original);');
for($i = 0; $i < $len; $i++){
$dbSet->execute(array(
':name' => $manga_paragraf_name_a[$i],
':id_main' => $id,
':src_original' => $manga_paragraf_href_a[$i]
));
}
$dbSet->fetchAll();
В вашем случае можно так :
$query = "SELECT *
FROM articlePrev
WHERE articletype = ?
ORDER BY date DESC
LIMIT :start,:count";
$stmt = $this->pdo->prepare($query);
$stmt->bindValue(':start', 1);
$stmt->bindValue(':count', 5);
$dbSet->execute();
$result = $stmt->fetchAll();
return $result; // можешь глянуть что пришло print_r($result);
Сборка персонального компьютера от Artline: умный выбор для современных пользователей