我需要获取数据库的一个完整列并且只获取该列,并将其作为数组返回。我使用$qarr1 = $stmt->fetchAll(PDO::FETCH_COLUMN);
,效果很好。我现在需要从该数据中提取第二列并将其保存为单独的数组,但由于游标问题,我无法使用fetchAll()
。我仍然是PHP的新手,并不太了解光标的整个概念,而且我很难理解fetch()
的参数。有人能够解释我能做什么而不是使用fetchAll()
吗?
答案 0 :(得分:2)
您可以尝试使用$stmt->fetchAll(PDO::FETCH_ASSOC);
但如果你真的想避免fetchAll()
,那么只需遍历每一行。
$arr = array();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$arr[] = $row;
}
答案 1 :(得分:1)
我认为最好的方法是使用PDO::FETCH_NUM
来获取类似于FETCH_ASSOC
的所有结果,但不是关联索引,而是使用数字索引,然后使用php函数array_column(myArray, columnNumber)
你可以抓住每列到你想要的任何变量。这里有一个代码示例:
// grab all columns and put index numbers for each column
$allColumns = $user_database->fetchAll(PDO::FETCH_NUM);
// grab first column
$con = array_column($allColumns, 0);
// grab second column
$gan = array_column($allColumns, 1);
// this will output the variables so you can see what was grabbed
echo '<pre>$con: '; var_dump($con);
echo '<pre>$gan: '; var_dump($gan);
我希望这会有所帮助。