donparalias
donparalias

Reputation: 1834

PDO method for mysql_fetch_assoc()?

I used to do :

$resource = mysql_query("SELECT * FROM table WHERE id = " . $id);
$user = mysql_fetch_assoc($resource);
echo "Hello User, your number is" . $user['number'];

I read that mysql statements are all deprecated and should not be used.

How can i do this with PDO?

The first line would be :

$stmt = $db->prepare("SELECT * FROM table WHERE id = " . $id); // there was an aditional double quote in here.
$stmt->execute(array(':id' => $id));

What about the mysql_fetch_assoc() function?

I am using php

Upvotes: 7

Views: 35070

Answers (5)

rational-space
rational-space

Reputation: 11

You can use PDO::FETCH_ASSOC for the same.

$stmt = $db->prepare("SELECT * FROM table WHERE id = :id");
$stmt->execute(array(':id' => $id));
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$stmt->execute();
while($record = $stmt->fetch()) {
   //do something
}

You can find a good tutorial here

Upvotes: -2

Your Common Sense
Your Common Sense

Reputation: 157916

There is a nice manual right here.

From which you can learn what you don't need to set fetch mode explicitly with every fetch.
...and even what with PDO you don't need no arrays at all to echo a number:

$stmt = $db->prepare("SELECT number FROM table WHERE id = ?");
$stmt->execute(array($id));
echo "Hello User, your number is".$stmt->fetchColumn();

Upvotes: 1

Mehdi Karamosly
Mehdi Karamosly

Reputation: 5438

This is a nice tutorial: http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers

<?php
   $db = new PDO('mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password');
   $stmt = $db->query("SELECT * FROM table");
   $results = $stmt->fetchAll(PDO::FETCH_ASSOC);
   var_dump($results);
?>

Upvotes: 0

Willy Pt
Willy Pt

Reputation: 1845

You can use (PDO::FETCH_ASSOC) constant
Usage will be while ($res = $stmt->fetch(PDO::FETCH_ASSOC)){ .... }
Here's the reference (documentation precisely) : http://www.php.net/manual/en/pdostatement.fetch.php

Upvotes: 9

Aida Paul
Aida Paul

Reputation: 2722

All well documentned in the manual: http://php.net/manual/en/pdostatement.fetchall.php

As example:

<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* Fetch all of the remaining rows in the result set */
print("Fetch all of the remaining rows in the result set:\n");
$result = $sth->fetchAll();
print_r($result);
?>

Upvotes: 1

Related Questions