0

次の PHP PDO コードがあります。

$sql='SELECT a,b,c FROM my_table WHERE d=?;';
$pds=$database->pdo->prepare($sql); $pds->execute(array($d_value)); $row=$pds->fetch();
echo $row['a'];

これはうまくいきます。

fetch() の 3 つの戻り値すべてを 1 行の変数に分割する方法を知りたかったのです。私はこれを試してみましたが失敗しました:

$sql='SELECT a,b,c FROM my_table WHERE d=?;';
$pds=$database->pdo->prepare($sql); $pds->execute(array($d_value)); $row=$pds->fetch();
list($a,$b,$c) = $row[0];
echo $a

「list($a,$b,$c) = $row[0];」を取得する方法 仕事へのライン?

どうもありがとうございます :)

4

4 に答える 4

2

これは機能しますか:

list($a,$b,$c) = $row;

$stmt->fetch() を使用すると、1 行のみが返されます。$row[0] を参照する必要はありません

于 2013-06-09T02:36:22.440 に答える
1

ではないでしょうか....

   list($a,$b,$c) = $row;

$row[0] ではありません。

于 2013-06-09T02:36:15.213 に答える
0

まず PDO::ATTR_DEFAULT_FETCH_MODE を PDO::FETCH_ASSOC に設定し、次に

$sql = 'SELECT a,b,c FROM my_table WHERE d=?';
$pds = $database->pdo->prepare($sql);
$pds->execute(array($d_value));
if ($row = $pds->fetch()) {
    extract($row);
}
echo $a;
于 2013-06-09T04:04:23.360 に答える
-1

$stmt->fetch()列名と等しい値を返すため、私には機能しませんassociative array with keys

最初に連想配列から値を取得する私の解決策:

list($a, $b, $c) = array_values($stmt->fetch());
于 2016-05-05T06:14:01.513 に答える