Mer*_*erk 1 php mysql arrays pdo
我正在尝试 PDO 进行数据库连接。不知何故,我收到了这个错误……或者注意到了,但我不知道为什么,它不输出名称……
注意:第 31 行 (location) 中的数组到字符串转换,即
(print $row[0] . "\t";)
Run Code Online (Sandbox Code Playgroud)
我不知道为什么?
完整代码:
$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";
Run Code Online (Sandbox Code Playgroud)
问候,梅林
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"
}
...
}
Run Code Online (Sandbox Code Playgroud)
所以 $row[0] 是一个数组。您将不得不解决它的索引。正如您在上面发布的示例数组中看到的那样,您可以使用:
print $row[0]['naam'] . "\t";
Run Code Online (Sandbox Code Playgroud)
或者
print $row[0][0] . "\t";
Run Code Online (Sandbox Code Playgroud)
更新:如果您想遍历记录而不是一次获取所有记录,请使用PDOStatement::fetch()
. 像这样:
while($row = $stmt->fetch()) {
print $row['naam'] . "\t";
}
Run Code Online (Sandbox Code Playgroud)
请注意,$row
现在是一维数组。这可能就是你想要的。
归档时间: |
|
查看次数: |
3438 次 |
最近记录: |