Gorkem Yontem
Gorkem Yontem

Reputation: 398

translation mysql_fetch_array to PDO::FETCH_NUM

What is the equivalent of these two code in PDO

first:

  $row=mysql_fetch_array($query);

second:

 while($row=mysql_fetch_array($query)){
   $data[]=$row;
 }

i used these codes below but they are not exact same i guess, because the rest of the code didn't work.

$row = $query->fetch(PDO::FETCH_NUM);

and

 $data[] = $query->fetch(PDO::FETCH_ASSOC);

Upvotes: 3

Views: 21310

Answers (2)

Ruby
Ruby

Reputation: 529

You should be able to get the data of the query in an array with this:

$data = $query->fetch(PDO::FETCH_BOTH);

If that's not working, your PDO connection is probably not setup right or your query didn't run. You can try troubleshooting the query with something like this:

try {
    $query->execute();
} catch (PDOException $e) {
    echo 'Query failed: ' . $e->getMessage();
}

Upvotes: 0

Barmar
Barmar

Reputation: 781731

Here are the correspondences:

  • mysql_fetch_array = fetch(PDO::FETCH_BOTH) - The rows are arrays with both numeric and named indexes.
  • mysql_fetch_assoc = fetch(PDO::FETCH_ASSOC) - The rows are arrays with named indexes.
  • mysql_fetch_row = fetch(PDO::FETCH_NUM) - The rows are arrays with numeric indexes.
  • mysql_fetch_object = fetch(PDO::FETCH_OBJ) or fetch(PDO::FETCH_CLASS) depending on whether you specify the optional className argument to mysql_fetch_object. The rows are objects, either of the specified class or stdClass.

The while loop is equivalent to:

$data = $query->fetchAll(PDO::FETCH_BOTH)

Upvotes: 16

Related Questions