2013-02-08 2 views
1

J'essaye PDO pour la connexion à la base de données. en quelque sorte que je reçois cette erreur .. ou un avis, mais je ne sais pas pourquoi, et il ne marche pas sortie le nom ...Remarque: Conversion de chaîne à chaîne sur la connexion de base de données PDO

Avis: Array à la conversion de chaîne en (emplacement) sur la ligne 31, qui est

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

Je ne sais pas pourquoi?

code complet:

  $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"; 

Salutations, Merijn

+0

Qu'est-ce que $ row [0] '? 'var_dump ($ row [0])' – deceze

Répondre

4

PDO::fetchAll() retourne un tableau d'enregistrements, où le type d'un enregistrement dépend du style que vous utilisez chercher.

Puisque vous utilisez le style de récupération par défaut de PDO qui est PDO::FETCH_BOTHPDO::fetchAll() retournera un tableau de tableaux. Dans votre cas, cela ressemblera à:

array(2) { 
    [0] => 
    array(2) { 
    [0] => 
    string(3) "foo" 
    'naam' => 
    string(3) "foo" 
    } 
    [1] => 
    array(2) { 
    [0] => 
    string(3) "bar" 
    'naam' => 
    string(3) "bar" 
    } 

    ... 
} 

Donc $ row [0] est un tableau. Vous devrez adresser un index de celui-ci. Comme vous le voyez dans le tableau exemple, je l'ai posté ci-dessus, vous pouvez utiliser:

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

ou

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

Mise à jour: Si vous voulez faire une boucle à travers les enregistrements au lieu d'aller les chercher tout à une fois, utilisez PDOStatement::fetch(). Comme ceci:

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

Notez que $row est maintenant un tableau à deux dimensions. Cela pourrait être ce que vous voulez.

+0

Merci! Je me demande comment le faire sortir tant qu'il est entré. Quelque chose comme While ($ row) {print $ row [cette valeur va augmenter] ['naam']. "\ t";) –

Questions connexes