Summary: in this tutorial, you will learn how to query data from the MySQL database by using PHP PDO.
To query data from a table using PHP, you follow these steps:
- First, connect to the MySQL database.
- Second, create a prepared statement.
- Third, execute the prepared statement with data.
- Finally, process the result set.
Querying all rows from a table
The following select.php
script retrieves all rows from the tasks
table:
<?php
require_once 'config.php';
try {
// connect to MySQL server
$conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
// execute a query
$sql = 'select * from tasks';
$stmt = $conn->query($sql);
$stmt->setFetchMode(PDO::FETCH_ASSOC);
// process the results
$tasks = [];
while ($row = $stmt->fetch()) {
$tasks[] = [
'title' => $row['title'],
'completed' => $row['completed'] == 0 ? false : true
];
}
// display the task list
require 'select.view.php';
} catch (PDOException $e) {
die($e);
}
Code language: PHP (php)
How it works.
First, include the config.php
file that contains the database configuration:
require_once 'config.php';
Code language: PHP (php)
Second, construct a SELECT
statement:
$sql = 'select * from tasks';
Code language: PHP (php)
Third, execute the SELECT
statement by calling the query()
method of the PDO object:
$stmt = $conn->query($sql);
Code language: PHP (php)
Fourth, set the fetch mode to PDO::FETCH_ASSO
so that the result sets will be an associative array.
$stmt->setFetchMode(PDO::FETCH_ASSOC);
Code language: PHP (php)
Fifth, iterate over the rows and append them to the $tasks
array:
$tasks = [];
while ($row = $stmt->fetch()) {
$tasks[] = [
'title' => $row['title'],
'completed' => $row['completed'] == 0 ? false : true
];
}
Code language: PHP (php)
Finally, include the select.view.php
script to display the to-do list. The select.view.php
iterates over the $tasks
array and displays each item:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Todo</title>
</head>
<body>
<table>
<h1>My Todo</h1>
<thead>
<tr>
<th>Title</th>
<th>Completed</th>
</tr>
</thead>
<tbody>
<?php foreach ($tasks as $task): ?>
<tr>
<td><?= $task['title'] ?></td>
<td><?= $task['completed'] ? '✅' : '⬜' ?></td>
</tr>
<?php endforeach ?>
</tbody>
</table>
</body>
</html>
Code language: PHP (php)
Summary
- Use the
query()
method of a prepared statement to retrieve data from a table.