How to use PDO to read data from the database?

1) Write the regular select statement and again, instead of values, put named placeholders. For example:
[code language=”php”]
$sql = "SELECT * FROM users";
[/code]
2) Prepare the query:
[code language=”php”]
$query = $dbh -> prepare($sql);
[/code]
3) Execute the query:
[code language=”php”]
$query -> execute();
[/code]
4) Assign the data which you pulled from the database (in the preceding step) to a variable.
[code language=”php”]
$results = $query -> fetchAll(PDO::FETCH_OBJ);
[/code]
Here I used the parameter PDO::FETCH_OBJ that returns the fetched data as an object. If you’d like to fetch the data in the form of an array, use: PDO::FETCH_ASSOC.
5) Make sure that you were able to retrieve the data from the database, by counting the number of records.
[code language=”php”]
if($query -> rowCount() > 0){}
[/code]
6) In case that the query returned at least one record, we can echo the records within a foreach loop:
[code language=”php”]
if($query -> rowCount() > 0)
{
foreach($results as $result)
{
echo $result -> name . ", ";
echo $result -> city . ", ";
echo $result -> date_added;
}
}
[/code]
All code together now:
[code language=”php”]
$sql = "SELECT * FROM users WHERE city = :city";
$query = $dbh -> prepare($sql);
$query -> bindParam(‘:city’, $city, PDO::PARAM_STR);
$city = "New York";
$query -> execute();
$results = $query -> fetchAll(PDO::FETCH_OBJ);
if($query -> rowCount() > 0)
{
foreach($results as $result)
{
echo $result -> name . ", ";
echo $result -> city . ", ";
echo $result -> date_added;
}
}
[/code]