2013-02-08 108 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