Today, We want to share with you REST API CRUD Example in PHP with MySQLi.In this post we will show you PHP CRUD RESTFul Webservice API Using PDOModel, hear for How to Create a Simple CRUD REST API in PHP PDO we will give you demo and example for implement.In this post, we will learn about Create and Consume Simple REST API in PHP with an example.
REST API CRUD Example in PHP with MySQLi
There are the Following The simple About REST API CRUD Example in PHP with MySQLi Full Information With Example and source code.
As I will cover this Post with live Working example to develop php rest api tutorial step by step, so the Creating a simple REST API in PHP Directory structures for this example is following below.
Step 1: dbcontroller.php
connectDB(); if(!empty($conn)) { $this->conn = $conn; } } function connectDB() { $conn = mysqli_connect($this->host,$this->user,$this->password,$this->database); return $conn; } function executeQuery($query) { $conn = $this->connectDB(); $result = mysqli_query($conn, $query); if (!$result) { //check for duplicate entry if($conn->errno == 1062) { return false; } else { trigger_error (mysqli_error($conn),E_USER_NOTICE); } } $affectedRows = mysqli_affected_rows($conn); return $affectedRows; } function executeSelectQuery($query) { $result = mysqli_query($this->conn,$query); while($row=mysqli_fetch_assoc($result)) { $resultset[] = $row; } if(!empty($resultset)) return $resultset; } } ?>
Step 2: Product.php
mobiles = $dbcontroller->executeSelectQuery($query); return $this->mobiles; } public function addProduct(){ if(isset($_POST['name'])){ $name = $_POST['name']; $model = ''; $color = ''; if(isset($_POST['model'])){ $model = $_POST['model']; } if(isset($_POST['color'])){ $color = $_POST['color']; } $query = "insert into tbl_product (name,model,color) values ('" . $name ."','". $model ."','" . $color ."')"; $dbcontroller = new DBController(); $result = $dbcontroller->executeQuery($query); if($result != 0){ $result = array('success'=>1); return $result; } } } public function deleteProduct(){ if(isset($_GET['id'])){ $id = $_GET['id']; $query = 'DELETE FROM tbl_product WHERE id = '.$id; $dbcontroller = new DBController(); $result = $dbcontroller->executeQuery($query); if($result != 0){ $result = array('success'=>1); return $result; } } } public function editProduct(){ if(isset($_POST['name']) && isset($_GET['id'])){ $name = $_POST['name']; $model = $_POST['model']; $color = $_POST['color']; $query = "UPDATE tbl_product SET name = '".$name."',model ='". $model ."',color = '". $color ."' WHERE id = ".$_GET['id']; } $dbcontroller = new DBController(); $result= $dbcontroller->executeQuery($query); if($result != 0){ $result = array('success'=>1); return $result; } } } ?>
Step 3: ProducTresThandler.php
getAllProduct(); if(empty($proDuctData)) { $statusCode = 404; $proDuctData = array('success' => 0); } else { $statusCode = 200; } $requestContentType = $_SERVER['HTTP_ACCEPT']; $this ->setHttpHeaders($requestContentType, $statusCode); $result["output"] = $proDuctData; if(strpos($requestContentType,'application/json') !== false){ $response = $this->encodeJson($result); echo $response; } } function add() { $product = new Product(); $proDuctData = $product->addProduct(); if(empty($proDuctData)) { $statusCode = 404; $proDuctData = array('success' => 0); } else { $statusCode = 200; } $requestContentType = $_SERVER['HTTP_ACCEPT']; $this ->setHttpHeaders($requestContentType, $statusCode); $result = $proDuctData; if(strpos($requestContentType,'application/json') !== false){ $response = $this->encodeJson($result); echo $response; } } function deleteProductById() { $product = new Product(); $proDuctData = $product->deleteProduct(); if(empty($proDuctData)) { $statusCode = 404; $proDuctData = array('success' => 0); } else { $statusCode = 200; } $requestContentType = $_SERVER['HTTP_ACCEPT']; $this ->setHttpHeaders($requestContentType, $statusCode); $result = $proDuctData; if(strpos($requestContentType,'application/json') !== false){ $response = $this->encodeJson($result); echo $response; } } function editProductById() { $product = new Product(); $proDuctData = $product->editProduct(); if(empty($proDuctData)) { $statusCode = 404; $proDuctData = array('success' => 0); } else { $statusCode = 200; } $requestContentType = $_SERVER['HTTP_ACCEPT']; $this ->setHttpHeaders($requestContentType, $statusCode); $result = $proDuctData; if(strpos($requestContentType,'application/json') !== false){ $response = $this->encodeJson($result); echo $response; } } public function encodeJson($responseData) { $jsonResponse = json_encode($responseData); return $jsonResponse; } } ?>
Step 4: ApiController.php
getAllProducts(); break; case "create": // to handle REST Url /product/create/ $productRestHandler = new ProducTresThandler(); $productRestHandler->add(); break; case "delete": // to handle REST Url /product/delete/$productRestHandler = new ProducTresThandler(); $result = $productRestHandler->deleteProductById(); break; case "update": // to handle REST Url /product/update/ $productRestHandler = new ProducTresThandler(); $productRestHandler->editProductById(); break; } ?>
Step 5: SimpleRest.php
getHttpStatusMessage($statusCode); header($this->httpVersion. " ". $statusCode ." ". $statusMessage); header("Content-Type:". $contentType); } public function getHttpStatusMessage($statusCode){ $httpStatus = array( 100 => 'Continue', 101 => 'Switching Protocols', 200 => 'OK', 201 => 'Created', 202 => 'Accepted', 203 => 'Non-Authoritative Information', 204 => 'No Content', 205 => 'Reset Content', 206 => 'Partial Content', 300 => 'Multiple Choices', 301 => 'Moved Permanently', 302 => 'Found', 303 => 'See Other', 304 => 'Not Modified', 305 => 'Use Proxy', 306 => '(Unused)', 307 => 'Temporary Redirect', 400 => 'Bad Request', 401 => 'Unauthorized', 402 => 'Payment Required', 403 => 'Forbidden', 404 => 'Not Found', 405 => 'Method Not Allowed', 406 => 'Not Acceptable', 407 => 'Proxy Authentication Required', 408 => 'Request Timeout', 409 => 'Conflict', 410 => 'Gone', 411 => 'Length Required', 412 => 'Precondition Failed', 413 => 'Request Entity Too Large', 414 => 'Request-URI Too Long', 415 => 'Unsupported Media Type', 416 => 'Requested Range Not Satisfiable', 417 => 'Expectation Failed', 500 => 'Internal Server Error', 501 => 'Not Implemented', 502 => 'Bad Gateway', 503 => 'Service Unavailable', 504 => 'Gateway Timeout', 505 => 'HTTP Version Not Supported'); return ($httpStatus[$statusCode]) ? $httpStatus[$statusCode] : $status[500]; } } ?>
Step 6: .htaccess
# Turn rewrite engine on Options +FollowSymlinks RewriteEngine on # map neat URL to internal URL RewriteRule ^product/list/$ ApiController.php?page_key=list [nc,qsa] RewriteRule ^product/list$ ApiController.php?page_key=list [nc,qsa] RewriteRule ^product/create/$ ApiController.php?page_key=create [L] RewriteRule ^product/create$ product/create/ [L,R=301] RewriteRule ^product/delete/([0-9]+)/$ ApiController.php?page_key=delete&id=$1 [L] RewriteRule ^product/delete([0-9]+)$ product/delete/$1 [L,R=301] RewriteRule ^product/update/([0-9]+)/$ ApiController.php?page_key=update&id=$1 [L] RewriteRule ^product/update/([0-9]+)$ product/update/$1/ [L,R=301]
Web Programming Tutorials Example with Demo
Read :
Summary
You can also read about AngularJS, ASP.NET, VueJs, PHP.
I hope you get an idea about REST API CRUD Example in PHP with MySQLi.
I would like to have feedback on my infinityknow.com blog.
Your valuable feedback, question, or comments about this article are always welcome.
If you enjoyed and liked this post, don’t forget to share.