php pdo - Split fetch()返回变量

时间:2013-06-09 02:21:31

标签: php arrays variables pdo

我有以下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 个答案:

答案 0 :(得分:2)

这是否有效:

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

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

答案 1 :(得分:1)

不是吗......

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

不是$ row [0];

答案 2 :(得分:0)

Set PDO::ATTR_DEFAULT_FETCH_MODE to PDO::FETCH_ASSOC first,然后

$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;

答案 3 :(得分:-1)

$stmt->fetch()对我不起作用,因为它会返回等于列名的associative array with keys

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

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