gpt4 book ai didi

php - 从结果集中选择列到数组中

转载 作者:行者123 更新时间:2023-11-29 14:43:18 25 4
gpt4 key购买 nike

我正在尝试将 PDO 结果集中的许多列放入单独的数组中,因此结果如下:

<?php
$query = 'SELECT col1,col2 FROM tbl_imaginary';
...
$col1 = array(col1_row1, col1_row2,...);
$col2 = array(col2_row1, col2_row2,...);
?>

我知道我可以使用 fetch 循环遍历结果集,但使用 fetchAll(PDO:FETCH_COLUMN) 似乎更有效。但是,一旦执行此操作,就无法再次执行它,除非再次对语句句柄执行execute()。我明白为什么,你不能清空 cookies jar 然后再做同样的事情,除非你再次填满它 - 类似的事情。所以我想我应该复制语句句柄对象并获取它的列,如下所示:

<?php
$sh->execute();
for ($i=0; $i<$sh->columnCount(); $i++)
{
$tmp_sh = $sh;
$output[$i] = $tmp_sh->fetchAll(PDO::FETCH_COLUMN);
}
?>

但是,这就像对原始语句句柄本身执行 fetchAll() 一样,仅输出第一列,而不输出第二列。

如果有人愿意向我解释这种行为和/或提出解决方案,我将不胜感激。

提前非常感谢您抽出时间。

编辑:所以基本上我想从一个结果集中获取 2 个(或更多)列作为单独的数组,就像对 1 个单列执行 2 个(或更多)单独查询一样。以上主要是对迄今为止我如何尝试做到这一点的解释。

最佳答案

为什么需要两个单独的数组?

$statement = $db->prepare('SELECT col1, col2 FROM tbl_imaginary');
$statement->execute();

foreach($sth->fetchAll() as $row) {
echo $row['col1'], $row['col2'];
}

关于php - 从结果集中选择列到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7545041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com