Stored Procedure Tutorial in PHP:
Are you writing Stored Procedures if not please take a look at this post. Stored procedures can help to improve web application performance and reduce database access traffic. In this post I want to explain how to create and call the stored procedures from database server.

 

Database:
users table contains username and name.

CREATE TABLE users
(

id INT PRIMARY KEY AUTO_INCREMENT,

username VARCHAR(50) UNIQUE,

name VARCHAR(50),

);
 

Results.php (Direct database server access)
Calling SQL statements directly. Here displaying the users content with PHP.

<?php
include(‘db.php‘); // Check code below of the post.

$sql=mysql_query(“SELECT user,name FROM users”);

while($row=mysql_fetch_array($sql))

{

echo $row[‘user’].’–‘.$row[‘name’].’</br>‘;

}

?>
 

How to Create Stored Procedure
You can create stored procedures that run on your database server. Stored Procedure name users(). Just like SQL statements.

DELIMITER //
CREATE PROCEDURE users()

SELECT username,name FROM users;
 

 
How to Call Stored Procedure

Results.php (With stored procedures)
Notice that here mysqli(MySQL Improved Extension)

<?php
include(“newdb.php”);

$sql=mysqli_query($connect,”CALL users()“);

while($row=mysqli_fetch_array(sql))

{

echo $row[‘user’].’–‘.$row[‘name’].”;

}
 

Stored Procedure Input OR Insert
Normal Way
insert procedure IN – Input , name and datatype.

DELIMITER //
CREATE PROCEDURE insert(IN username VARCHAR(50),IN name VARCHAR(50))

INSERT INTO users(username,name) VALUES (username,name);
 

Better Way
I recommend you to create stored procedures following statements.

DELIMITER //
CREATE PROCEDURE insert(IN username VARCHAR(50),IN name VARCHAR(50))

BEGIN

SET @username=username;

SET @name=name;

PREPARE STMT FROM

“INSERT INTO users(username,name) VALUES (?,?)”;

EXECUTE STMT USING @username,@name;

END
 

insert.php
Here inserting values into users table with calling insert() procedure.

<?php
include(“newdb.php”);

$username=’Venugopal24′;

$name=’venugopal’;

$sql=mysqli_query($connect,

“CALL insert(‘$username’,’$name’)“);

?>