2013-02-08 68 views
1

我正在尝试数据库连接的PDO。不知何故,我得到这个错误..或通知,但我不知道为什么,它不输出名称...注意:数组到字符串转换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

什么是'$ row [0]'? 'var_dump($ row [0])' – deceze 2013-02-08 16:42:35

回答

4

PDO::fetchAll()返回阵列的记录,其中记录的类型取决于您所使用的取样式。

由于您使用PDO的默认获取方式,即PDO::FETCH_BOTHPDO::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" 
    } 

    ... 
} 

所以$行[0]是一个数组。你将不得不解决它的一个索引。当你的例子阵列,我贴在上面看你可以使用:

print $row[0]['naam'] . "\t"; 

print $row[0][0] . "\t"; 

更新:如果你想通过记录循环,而不是在获取所有这些一次,然后使用PDOStatement::fetch()。就像这样:

while($row = $stmt->fetch()) { 
    print $row['naam'] . "\t"; 
} 

注意$row现在是一个二维阵列。这可能是你想要的。

+0

Thanx!我想知道如何让它输出,只要它得到输入。类似While($ row){print $ row [这个值会增加] ['naam'])。 “\ t” 的) – 2013-02-08 16:58:22

相关问题