我有以下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];'工作线?
非常感谢:)
答案 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());