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 个返回值分解为一行中的变量。我试过这个没有成功:

$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() 只返回一行。无需引用 $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 回答