-1

データベースの 1 つの完全な列とその列のみを取得し、それを配列として返す必要がありました。を使用し$qarr1 = $stmt->fetchAll(PDO::FETCH_COLUMN);ていましたが、完全に機能しました。fetchAll()そのデータから 2 番目の列を取得し、別の配列として保存する必要がありますが、カーソルの問題のため使用できません。私はまだ 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 に答える