How to fetch data from the database in PHP ?
Last Updated :
17 Mar, 2022
Database operations in PHP are a very crucial thing that is especially needed in CRUD (Create, Read, Update and Delete) operations.
In this article, we will discuss the Read part i.e. data fetching from database.
There are two ways to connect to a database using PHP. They are as follows.
- MySQLi (“i” stands for improved)
- PDO (PHP Data Objects)
MySQLi vs PDO: Both the ways are really good but there is only one difference between the two methods, PDO can work on 12 different database systems whereas MySQLi works with MySQL databases only.
Connecting to a Database:
-
MySQLi Object-Oriented
$conn = new mysqli($servername, $username, $databasename)
-
MySQLi Procedural
$conn = mysqli_connect($servername,
$username, $password, $databasename);
-
PDO
$conn = new PDO("mysql:host=$servername;dbname=myDB",
$username, $password, $databasename);
Executing Queries: After connecting to the database we need to run queries to fetch data. In Read operations, we will use only select queries to fetch data from the database.
Close Connection: After the fetching is performed, you should close the connection to the database using the close() function.
$conn->close();
Sample Database
Create Table in the database:
CREATE TABLE `Student Details` (
`Roll_No` int(11) NOT NULL,
`Name` varchar(255) NOT NULL,
`City` varchar(255) NOT NULL,
`Age` int(11) NOT NULL,
PRIMARY KEY (`Roll_No`)
);
Student Details
MySQLi Object-Oriented approach:
PHP Code:
PHP
<?php
$servername = "localhost" ;
$username = "root" ;
$password = "" ;
$databasename = "geeksforgeeks" ;
$conn = new mysqli( $servername ,
$username , $password , $databasename );
if ( $conn ->connect_error) {
die ( "Connection failed: " . $conn ->connect_error);
}
$query = "SELECT * FROM `Student Details`;" ;
$result = $conn ->query( $query );
if ( $result ->num_rows > 0)
{
while ( $row = $result ->fetch_assoc())
{
echo "Roll No: " .
$row [ "Roll_No" ]. " - Name: " .
$row [ "Name" ]. " | City: " .
$row [ "City" ]. " | Age: " .
$row [ "Age" ]. "<br>" ;
}
}
else {
echo "0 results" ;
}
$conn ->close();
?>
|
Output:
Roll No: 1 - Name: Ram | City: Delhi | Age: 18
Roll No: 2 - Name: Shyam | City: Mumbai | Age: 19
Roll No: 3 - Name: Rohit | City: Chennai | Age: 18
Roll No: 4 - Name: Suresh | City: Kolkata | Age: 20
MySQLi Procedural approach:
PHP Code:
PHP
<?php
$servername = "localhost" ;
$username = "root" ;
$password = "" ;
$databasename = "geeksforgeeks" ;
$conn = mysqli_connect( $servername ,
$username , $password , $databasename );
if (! $conn ) {
die ( "Connection failed: " . mysqli_connect_error());
}
$query = "SELECT Roll_No, Name FROM `Student Details`;" ;
$result = mysqli_query( $conn , $query );
if (mysqli_num_rows( $result ) > 0) {
while ( $row = mysqli_fetch_assoc( $result )) {
echo "Roll No: " . $row [ "Roll_No" ]
. " - Name: " . $row [ "Name" ]. "<br>" ;
}
} else {
echo "0 results" ;
}
$conn ->close();
?>
|
Output:
Roll No: 1 - Name: Ram
Roll No: 2 - Name: Shyam
Roll No: 3 - Name: Rohit
Roll No: 4 - Name: Suresh
PDO Approach:
PHP Code:
PHP
<?php
$servername = "localhost" ;
$username = "root" ;
$password = "" ;
$databasename = "geeksforgeeks" ;
$conn = mysqli_connect( $servername ,
$username , $password , $databasename );
if (! $conn ) {
die ( "Connection failed: " . mysqli_connect_error());
}
$query = "SELECT Roll_No, Name, City FROM `Student Details` WHERE Age > 18;" ;
try
{
$conn = new PDO(
"mysql:host=$servername;dbname=$databasename" ,
$username , $password );
$conn ->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn ->prepare( $query );
$stmt ->execute();
$r = $stmt ->setFetchMode(PDO::FETCH_ASSOC);
$result = $stmt ->fetchAll();
foreach ( $result as $row )
{
echo "Roll No: " . $row [ "Roll_No" ]. " - Name: " .
$row [ "Name" ]. " | City: " . $row [ "City" ]. "<br>" ;
}
} catch (PDOException $e ) {
echo "Error: " . $e ->getMessage();
}
$conn ->close();
?>
|
Output:
Roll No: 2 - Name: Shyam | City: Mumbai
Roll No: 4 - Name: Suresh | City: Kolkata
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...