我正在尝试PDO进行数据库连接。不知怎的,我得到这个错误..或通知但我不知道为什么,它不输出名称...
注意:第31行(位置)中的数组转换为字符串,即
(print $row[0] . "\t";)
我不知道为什么?
完整代码:
$query = "SELECT naam FROM paginas";
try
{
$stmt = $db->prepare($query);
$result = $stmt->execute();
}
catch(PDOException $ex)
{
die("Failed to run query: " . $ex->getMessage());
}
$row = $stmt->fetchALL();
print $row[0] . "\t";
问候, Merijn
答案 0 :(得分:4)
PDO::fetchAll()
会返回记录数组,其中记录的类型取决于您使用的提取样式。
由于您使用的是PDO的默认提取样式PDO::FETCH_BOTH
PDO::fetchAll()
将返回一个数组数组。在你的情况下,它看起来像:
array(2) {
[0] =>
array(2) {
[0] =>
string(3) "foo"
'naam' =>
string(3) "foo"
}
[1] =>
array(2) {
[0] =>
string(3) "bar"
'naam' =>
string(3) "bar"
}
...
}
所以$ row [0]是一个数组。你必须解决它的索引。正如您在上面发布的示例数组中所见,您可以使用:
print $row[0]['naam'] . "\t";
或
print $row[0][0] . "\t";
更新:如果您想循环浏览记录而不是一次性提取所有记录,请使用PDOStatement::fetch()
。像这样:
while($row = $stmt->fetch()) {
print $row['naam'] . "\t";
}
请注意,$row
现在是一维数组。这可能就是你想要的。