-1

我需要获取数据库的一整列并且只获取该列,并将其作为数组返回。我正在使用$qarr1 = $stmt->fetchAll(PDO::FETCH_COLUMN);,效果很好。fetchAll()我现在需要从该数据中提取第二列并将其保存为单独的数组,但由于光标问题,我不能用于此操作。我对 PHP 还是很陌生,不太了解光标的整个概念,而且我很难理解fetch(). 有人能够解释我可以做什么而不是使用fetchAll()吗?

4

2 回答 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 回答