In this tutorial we learn how to Insert Image in database and how to fetch image from database.
How to Insert and fetch image from MySql Database using PHP
Let's follow all the below steps to fetch image from DB using PHP
Step 1- Create table in database
Below created a images table for insert image file name and tile .
Step 2- Create a index.php page
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>upload image</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
</head>
<body>
<form class="" action="image_insert.php" method="POST" enctype="multipart/form-data">
<div class=" col-4 p-2 border m-2">
<h3>Upload Image In Your Database</h3>
<input type="text" name="image_title" class="form-control" placeholder="Enter image title" ><br>
<input type="file" name="image_upload" accept="image/*" class="form-control" value="" /> <br>
<button class="btn btn-primary w-100">Upload</button>
</div>
</form>
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
</body>
</html>
Output
Step 3- Create a folder
You need to create a folder with any name to store uploaded image in it. Here we use 'images' name as a folder name.
Step 4 – Create image_insert.php file
In this page we get the form data from form when form is submit and then insert these data to database using mysql.
<?php
$conn = mysqli_connect("localhost","root","","teknowize");
$title = $_POST['image_title']; // image title
$image = $_FILES['image_upload']; // get image from post data
$image_name=$image['name']; // image name
$image_tmp_name=$image['tmp_name']; // temp file path
$destination="images/".$image_name; // Folder path Where Image saved
move_uploaded_file($image_tmp_name , $destination); // this function are used to store the file in destination path
$query="INSERT INTO `images`( `title` , `image`) VALUES ( '{$title}' , '{$image_name}') ";
$result=mysqli_query($conn , $query);
?>
mysqli_connect() -
This function is used to make connection with database.
move_uploaded_file() -
This function is used to store image in your destination folder which you created above.
Output
This output showing that the image which we uploaded is successfully moved/uploaded to image folder.
This output showing that the image which we uploaded is successfully inserted to the database.
Step 5 – Create fetch_image.php file and insert below code in it.
In this file we show the uploaded images from the database.
<?php
$conn = mysqli_connect("localhost","root","","teknowize");
$query="SELECT * FROM `images`";
$result=mysqli_query($conn , $query);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Image list</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
</head>
<body>
<div class="col-6 border m-2">
<h3>Image list</h3>
<table class="table table-bordered">
<thead>
<tr>
<th>#</th>
<th>Title</th>
<th>Image</th>
</tr>
</thead>
<tbody>
<?php
while($fetch=mysqli_fetch_assoc($result)){
echo "<tr>";
echo "<td>{$fetch['id']}</td>";
echo "<td>{$fetch['title']}</td>";
echo "<td><img src='images/{$fetch['image']}' width='100'></td>";
echo " </tr>";
}
?>
</tbody>
</table>
</div>
</body>
</html>
Output