我无法弄清楚为什么我只返回数组中的1个条目,当表格总共有4个条目时。
我的PDO代码是:
$stmtkat = $this->db->prepare("SELECT * FROM kategorie");
$stmtkat->execute();
$katarray=$stmtkat->fetch(PDO::FETCH_ASSOC);
var_dump($katarray);
我得到的返回数组:
array(2) { ["id"]=> string(1) "1" ["kategorie"]=> string(12) "Coaching" }
该表有4行,为什么我只获得数组的第一行? 我做错了什么?显然我是PDO的新手。
Ty你的时间。
答案 0 :(得分:5)
您只获取查询生成的结果行之一
如果您使用gcc -std=c99 -Wextra a.c -lavcodec -lswscale -lavutil
./a.out
ffplay tmp.mpg
ffplay tmp.h264
一次获取一个结果行,则可以在这样的while循环中执行此操作
->fetch()
或者使用$stmtkat = $this->db->prepare("SELECT * FROM kategorie");
$stmtkat->execute();
while ( $katarray=$stmtkat->fetch(PDO::FETCH_ASSOC) ) {
var_dump($katarray);
}
从一次调用PDO Stmt对象将所有行返回到本地数组
fetchAll()
答案 1 :(得分:2)
你只得到一行,因为:
PDOStatement :: fetch - 从结果集中获取下一行
使用fetchAll()
来获取结果的完整array()
或在fetch()
循环中使用while()
。
fetch()
和while()
的示例:
while ($stmtkat->fetch(PDO::FETCH_ASSOC)) {
var_dump($katarray);
}
fetchAll()
的示例:
$result = $stmtkat->fetchAll(PDO::FETCH_ASSOC)
var_dup($result);