我想将第一个PDO结果数组与其他数组分开。这是我的尝试:
while()
但仅第一个fetchAll();
在我的代码中执行(上面的代码总是只打印查询的第一个结果)。那么,我该如何解决呢?
注意:我不想使用{{1}}。
答案 0 :(得分:5)
尝试类似:
$results = $stm1->fetch();
print_r($results);
while($results = $stm1->fetch()){
print_r($results);
}
你实际上并不需要循环来获取第一个元素,然后你可以继续使用曾经是第二个循环的迭代。
的问题
while($results = $stm1->fetch() and $iterator == 1){
如果结果集中有一个或多个结果,您将始终两次调用$stm1->fetch()
:第一次进入循环,然后第二次进入在您实际检查($iterator == 1)
不再为真之前的第二次迭代。
如果结果集中只有两个结果,那么将在第二个循环中显示从未输入(因为fetch不会有任何结果)。
答案 1 :(得分:3)
你不需要一个while循环,因为你只想获取你不需要while循环的1行,只需这样做:
for ($i=0; $i < 10; $i++) {
$randomSite = "http://my.site/paste/" . hash('adler32', $i);
}
然后你就可以像往常一样把你的while循环。
答案 2 :(得分:1)
$result = $stmt->fetch(PDO::FETCH_ASSOC);
将仅提供查询执行的第一行。即使你使用它只会产生第一行。
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
将提供查询执行的所有记录。