upload image

How to upload  and fetch image from MySql Database using PHP


In this tutorial we learn how to Insert Image in database and how to fetch image from database.


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 -