Reputation: 398
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
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
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