How to output data when using $stmt->fetch(PDO::FETCH_ASSOC);

15,918
 $pdo = new PDO(/*Your credentials*/);
 $sql = `select name, author, title from d_books`
 $stmt = $pdo->prepare($sql);
 $stmt->execute(); 

 while ($arr = $stmt->fetch(PDO::FETCH_ASSOC)) {
    echo $arr['name'];
 }

or

 $pdo = new PDO(/*Your credentials*/);
 $sql = `select name, author, title from d_books`
 $stmt = $pdo->prepare($sql);
 $stmt->execute(); 
 $arr = $stmt->fetchAll(PDO::FETCH_ASSOC);
 foreach ($arr as $titleData) {
    echo $titleData['name'];
 }

You can always use pdo->query() method when running a query without any parameters, which is faster, but I do not believe that this happens much(running queries without any parameters).

Share:
15,918
jmenezes
Author by

jmenezes

Updated on November 25, 2022

Comments

  • jmenezes
    jmenezes over 1 year

    How do you correctly output data when using $stmt->fetch(PDO::FETCH_ASSOC)? Right now I'm getting single words as my result when doing

    "select name, author, title from d_books"
    
    // Other PDO stuff goes here
    $arr = $stmt->fetch(PDO::FETCH_ASSOC);
    foreach ($arr as $titleData) {
       echo $titleData['name'];
    }
    
  • jmenezes
    jmenezes over 10 years
    Your answers work. I was using fetch instead of fetchAll. Maybe that's why I kept getting single letters as my output.