我正在使用https://github.com/Orange-OpenSource/YACassandraPDO作为PDO扩展,一切都很好,但当我尝试通过子句select * from users Where key IN ($my_keys_array)
获取记录时,只检索第一条记录。
$query = "SELECT * FROM questions WHERE user_id = 'mikko' AND question_id IN ('Question 1','Quesiton 2')";
$stmt = $this->db->prepare($query);
$stmt->execute ();
$res = $stmt->fetch(PDO::FETCH_ASSOC);
echo json_encode($res);
有人知道卡桑德拉pdo有没有问题,或者我错在哪里了?
我按cqlsh>提示试了同一句话,效果很好。
提前感谢您的帮助。
现在您只从结果集中提取一行,要提取所有行,您应该发出$stmt->fetchAll ()
而不是$stmt->fetch()
。
Btw。一个很好的地方,如何使用API总是测试:这些测试可以提供很多信息https://github.com/Orange-OpenSource/YACassandraPDO/tree/master/tests.
您还可以查看PDO文档中的fetch和fetchAll。
当前,您只从结果集中获取一行。您需要在循环中运行该获取,以便从结果集中获取所有结果。
$result_array = array();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$result_array[] = $row;
}
echo json_encode($result_array);