Upload Image in database in php


CREATE DATABASE 

The first thing u will need us to create a database . Create a databse with the name image_upload

Create table now. 

CREATE TABLE images (
    id int NOT NULL AUTO_INCREMENT,
    image varchar(255) NOT NULL,
    image_text varchar(255),
    PRIMARY KEY (id)
);

just copy the above codes and run in php myadmin

Create a page index.php 

Save it in a folder. 

Codes for index.php

<?php
  // Create database connection
  $db = mysqli_connect("localhost", "root", "", "image_upload");

  // Initialize message variable
  $msg = "";

  // If upload button is clicked ...
  if (isset($_POST['upload'])) {
      // Get image name
      $image = $_FILES['image']['name'];
      // Get text
      $image_text = mysqli_real_escape_string($db, $_POST['image_text']);

      // image file directory
      $target = "images/".basename($image);

      $sql = "INSERT INTO images (image, image_text) VALUES ('$image', '$image_text')";
      // execute query
      mysqli_query($db, $sql);

      if (move_uploaded_file($_FILES['image']['tmp_name'], $target)) {
          $msg = "Image uploaded successfully";
      }else{
          $msg = "Failed to upload image";
      }
  }
  $result = mysqli_query($db, "SELECT * FROM images");
?>
<!DOCTYPE html>
<html>
<head>
<title>Image Upload</title>
<style type="text/css">
   #content{
       width: 50%;
       margin: 20px auto;
       border: 1px solid #cbcbcb;
   }
   form{
       width: 50%;
       margin: 20px auto;
   }
   form div{
       margin-top: 5px;
   }
   #img_div{
       width: 80%;
       padding: 5px;
       margin: 15px auto;
       border: 1px solid #cbcbcb;
   }
   #img_div:after{
       content: "";
       display: block;
       clear: both;
   }
   img{
       float: left;
       margin: 5px;
       width: 300px;
       height: 140px;
   }
</style>
</head>
<body>
<div id="content">
  <?php
    while ($row = mysqli_fetch_array($result)) {
      echo "<div id='img_div'>";
          echo "<img src='images/".$row['image']."' >";
          echo "<p>".$row['image_text']."</p>";
      echo "</div>";
    }
  ?>
  <form method="POST" action="index.php" enctype="multipart/form-data">
      <input type="hidden" name="size" value="1000000">
      <div>
        <input type="file" name="image">
      </div>
      <div>
      <textarea 
          id="text" 
          cols="40" 
          rows="4" 
          name="image_text" 
          placeholder="Say something about this image..."></textarea>
      </div>
      <div>
          <button type="submit" name="upload">POST</button>
      </div>
  </form>
</div>
</body>
</html>

Please dont forget to create a folder name images . This is the foolder where the uploaded files will be saved. 

Please comments if you face any problem. dont forget to like and share. 

Share the post


Leave Comment