PHP MySQLi Functions: mysqli_query, mysqli_connect, mysqli_fetch_array

PHP has a rich collection of built in functions for manipulating MySQL databases.

PHP mysqli_connect function

The PHP mysql connect function is used to connect to a MySQL database server.

It has the following syntax.

<?php;
$db_handle = mysqli_connect($db_server_name, $db_user_name, $db_password);
?>

HERE,

  • “$db_handle” is the database connection resource variable.
  • “mysqli_connect(…)” is the function for php database connection
  • “$server_name” is the name or IP address of the server hosting MySQL server.
  • “$user_name” is a valid user name in MySQL server.
  • “$password” is a valid password associated with a user name in MySQL server.

PHP mysqli_select_db function

The mysqli_select_db function is used to select a database.

It has the following syntax.

<?php
mysqli_select_db($db_handle,$database_name);
?>

HERE,

  • “mysqli_select_db(…)” is the database selection function that returns either true or false
  • “$database_name” is the name of the database
  • “$link_identifier” is optional, it is used to pass in the server connection link

PHP mysqli_query function

The mysqli_query function is used to execute SQL queries.

The function can be used to execute the following query types;

  • Insert
  • Select
  • Update
  • delete

It has the following syntax.

<?php
mysqli_query($db_handle,$query) ;
?>

HERE,

  • “mysqli_query(…)” is the function that executes the SQL queries.
  • “$query” is the SQL query to be executed
  • “$link_identifier” is optional, it can be used to pass in the server connection link

PHP mysqli_num_rows function

The mysqli_num_rows function is used to get the number of rows returned from a select query.

It has the following syntax.

<?php
mysqli_num_rows($result);
?>

HERE,

  • “mysqli_num_rows(…)” is the row count function
  • “$result” is the mysqli_query result set

PHP mysqli_fetch_array function

The mysqli_fetch_array function is used fetch row arrays from a query result set.

It has the following syntax.

<?php
mysqli_fetch_array($result);
?>

HERE,

  • “mysqli_fetch_array(…)” is the function for fetching row arrays
  • “$result” is the result returned by the mysqli_query function.

PHP mysqli_close function

The mysqli_close function is used to close an open database connection.

It has the following syntax.

<?php
mysqli_close($db_handle);
?>

HERE,

  • “mysqli_close(…)” is the PHP function
  • “$link_identifier” is optional, it is used to pass in the server connection resource

Let’s look at practical examples that take advantage of these functions.

Creating the MySQL database This tutorial assumes knowledge of MySQL and SQL, if these terms are unfamiliar to you, refer to our MySQL and SQL tutorials.

We will create a simple database called my_personal_contacts with one table only.

Below are the steps to create the database and table.

  • Connect to MySQL using your favorite access tool such as MySQL workbench, phpMyAdmin etc.
  • Create a database named my_person_contacts
  • Execute the script shown below to create the table and insert some dummy data
<?php
CREATE TABLE IF NOT EXISTS `my_contacts` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `full_names` varchar(255) NOT NULL,

  `gender` varchar(6) NOT NULL,

  `contact_no` varchar(75) NOT NULL,

  `email` varchar(255) NOT NULL,

  `city` varchar(255) NOT NULL,

  `country` varchar(255) NOT NULL,

  PRIMARY KEY (`id`)

) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

INSERT INTO `my_contacts` (`id`, `full_names`, `gender`, `contact_no`, `email`, `city`, `country`) VALUES

(1, 'Zeus', 'Male', '111', 'zeus @ olympus . mt . co', 'Agos', 'Greece'),

(2, 'Anthena', 'Female', '123', 'anthena @ olympus . mt . co', 'Athens', 'Greece'),

(3, 'Jupiter', 'Male', '783', 'jupiter @ planet . pt . co', 'Rome', 'Italy'),

(4, 'Venus', 'Female', '987', 'venus @ planet . pt . co', 'Mars', 'Italy');
?>

We now have a database set up that we will manipulate from PHP.

Reading records from the database We will now create a program that prints the records from the database.

<?php 
	$dbh = mysqli_connect('localhost', 'root', 'melody'); 
	//connect to MySQL server if (!$dbh)     
    
	die("Unable to connect to MySQL: " . mysqli_error());
    
	//if connection failed output error message 
    if (!mysqli_select_db($dbh,'my_personal_contacts'))     
    
	die("Unable to select database: " . mysqli_error()); 
    //if selection fails output error message 
    
	$sql_stmt = "SELECT * FROM my_contacts"; 
    //SQL select query 
    
     $result = mysqli_query($dbh,$sql_stmt);
     //execute SQL statement 
     
	if (!$result)     
		die("Database access failed: " . mysqli_error()); 
    	//output error message if query execution failed 
        
		$rows = mysqli_num_rows($result); 
   		// get number of rows returned 
    
	if ($rows) {     
    
	while ($row = mysqli_fetch_array($result)) {         
		echo 'ID: ' . $row['id'] . '<br>';         
		echo 'Full Names: ' . $row['full_names'] . '<br>';        
		echo 'Gender: ' . $row['gender'] . '<br>';         
		echo 'Contact No: ' . $row['contact_no'] . '<br>';         
		echo 'Email: ' . $row['email'] . '<br>';         
		echo 'City: ' . $row['city'] . '<br>';         
		echo 'Country: ' . $row['country'] . '<br><br>';     
	} 
} 
mysqli_close($dbh); //close the database connection 
?>

Executing the above code returns the results shown in the diagram shown below

PHP: MySQL Functions

Inserting new records

Let’s now look at an example that adds a new record into our table. the code below shows the implementation.

<?php 
	$dbh = mysqli_connect('localhost', 'root', 'melody'); 
	//connect to MySQL server if (!$dbh)     
    
	die("Unable to connect to MySQL: " . mysqli_error()); 
	//if connection failed output error message 
    
	if (!mysqli_select_db($dbh,'my_personal_contacts'))     
	die("Unable to select database: " . mysql_error()); 
	//if selection fails output error message 
    
	$sql_stmt = "INSERT INTO `my_contacts` (`full_names`,`gender`,`contact_no`,`email`,`city`,`country`)"; 
	$sql_stmt .= " VALUES('Poseidon','Mail','541',' poseidon @ sea . oc ','Troy','Ithaca')"; 
    
	$result = mysqli_query($dbh,$sql_stmt); //execute SQL statement 
    
	if (!$result)     
		die("Adding record failed: " . mysqli_error()); 
		//output error message if query execution failed echo "Poseidon has been successfully added to your contacts list";
        
 mysqli_close($dbh); //close the database connection 
?>

Executing the above code outputs “Poseidon has been successfully added to your contacts list” go back to the select query example and retrieval your contacts again.

See if Poseidon has been added to your list.

Updating records Let’s now look at an example that updates a record in the database.

Let’s suppose that Poseidon has changed his contact number and email address.

<?php 
	$dbh = mysqli_connect('localhost', 'root', 'melody'); 
	//connect to MySQL server 
    
	if (!$dbh)    
	die("Unable to connect to MySQL: " . mysqli_error()); 
    //if connection failed output error message 
    
	if (!mysqli_select_db($dbh,'my_personal_contacts'))     
	die("Unable to select database: " . mysql_error()); 
	//if selection fails output error message 
    
	$sql_stmt = "UPDATE `my_contacts` SET `contact_no` = '785',`email` = ' poseidon @ ocean . oc ';
	//SQL select query $sql_stmt .= " WHERE `id` = 5"; 
    
	$result = mysqli_query($dbh,$sql_stmt); 
	//execute SQL statement if (!$result)     
    
	die("Deleting record failed: " . mysqli_error()); 
	//output error message if query execution failed 
    
	echo "ID number 5 has been successfully updated"; 
mysqli_close($dbh); //close the database connection 
?>

Deleting records

Let’s now look at an example that removes records from the database. Let’s suppose that Venus has a restraining order against us, and we must remove her contacts info from our database.

<?php 
	$dbh = mysqli_connect('localhost', 'root', 'melody'); 
	//connect to MySQL server
    
	if (!$dbh)     
	die("Unable to connect to MySQL: " . mysqli_error()); 
	//if connection failed output error message 
    
	if (!mysqli_select_db($dbh,'my_personal_contacts'))     
	die("Unable to select database: " . mysqli_error()); 
	//if selection failes output error message $id = 4; 
	//Venus's ID in the database 
    
	$sql_stmt = "DELETE FROM `my_contacts` WHERE `id` = $id"; 
	//SQL Delete query 
    
	$result = mysqli_query($dbh,$sql_stmt); 
	//execute SQL statement 
    
	if (!$result)     
	die("Deleting record failed: " . mysqli_error());
	//output error message if query execution failed 
    
	echo "ID number $id has been successfully deleted"; 
mysqli_close($dbh); //close the database connection 
?>

PHP Data Access Object PDO

The PDO is a class that allows us to manipulate different database engines such as MySQL, PostGres, MS SQL Server etc.

The code below shows the database access method using the PDO object.

Note: the code below assumes knowledge of SQL language, arrays, exception handling and foreach loop.

<?php 
	try {    
	$pdo = new PDO("mysql:host=localhost;dbname=my_personal_contacts", 'root', 'melody');     
    
	$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);     
	$pdo->exec('SET NAMES "utf8"');     
    
	$sql_stmt = "SELECT * FROM `my_contacts`";     
	$result = $pdo->query($sql_stmt);     
	$result->setFetchMode(PDO::FETCH_ASSOC);     
	$data = array();     
	foreach ($result as $row) {         
	$data[] = $row;     
  }     
print_r($data); 
} 
catch (PDOException $e) {     
	echo $e->getMessage(); 
} 
?>

HERE,

  • “try{…catch…}” is the exception handling block
  • “$pdo = new PDO(“mysql…” creates an instance of the PDO object and passes the database drivers, server and database names, user id and password.
  • “$pdo->setAtt…” sets the PDO error mode and exception mode attributes
  • “$pdo->exec(‘SET NA…” sets the encoding format

ODBC ODBC is the acronym for Open Database Connectivity. It has the following basic syntax.

<?php $conn = odbc_connect($dsn, $user_name, $password); ?>

HERE,

  • “odbc_connect” is the PHP built in function
  • “$dsn” is the ODBC data source name.
  • “$user_name” is optional, it is used for the ODBC user name
  • “$password” is optional, it is used for the ODBC password

The example used assumes you;

  • Are Using Windows OS
  • You have created an ODBC link to the northwind Microsoft Access database named northwind

Below is the implementation code for ODBC data access

<?php 
	$dbh = odbc_connect('northwind', '', ''); 
	if (!$dbh) {     
	exit("Connection Failed: " . $dbh); 
} 
	$sql_stmt = "SELECT * FROM customers"; 
	$result = odbc_exec($dbh, $sql_stmt); 
	if (!$result) {     
	exit("Error access records"); 
} 
	while (odbc_fetch_row($result)) {     
	$company_name = odbc_result($result, "CompanyName");    
	$contact_name = odbc_result($result, "ContactName");     
	echo "<b>Company Name (Contact Person):</b> $company_name ($contact_name) <br>";
} 
odbc_close($dbh); 
?>

Summary

  • MySQL is an open source relational database management available on most web hosting servers
  • PHP has a rich collection of built in functions that simplify working with MySQL
  • PDO is the acronym for PHP Data Object; it is used to connect to different database engines using the same object
  • PHP uses the odbc_connect function to manipulate databases via ODBC