php pdo -拆分fetch()返回到变量


php pdo - Split fetch() return into Variables

我有以下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'];

this works fine.

我想知道如何将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];'行工作?

可以吗?

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

使用$stmt->fetch()只返回一行。无需引用$row[0]

会不会是....

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

不是行[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;

$stmt->fetch()不适合我,因为它返回的associative array with keys等于列名

首先从关联数组中获取值的解决方案:

list($a, $b, $c) = array_values($stmt->fetch());