我有以下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());