我需要获取数据库的一整列并且只获取该列,并将其作为数组返回。我正在使用$qarr1 = $stmt->fetchAll(PDO::FETCH_COLUMN);
,效果很好。fetchAll()
我现在需要从该数据中提取第二列并将其保存为单独的数组,但由于光标问题,我不能用于此操作。我对 PHP 还是很陌生,不太了解光标的整个概念,而且我很难理解fetch()
. 有人能够解释我可以做什么而不是使用fetchAll()
吗?
问问题
2599 次
2 回答
2
您可以尝试使用$stmt->fetchAll(PDO::FETCH_ASSOC);
,但如果您真的想避免,fetchAll()
那么只需遍历每一行。
$arr = array();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$arr[] = $row;
}
于 2013-01-24T17:18:27.983 回答
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);
我希望这有帮助。
于 2016-07-01T17:34:25.737 回答