How to upload images into MySQL database using PHP code How to upload images into MySQL database using PHP code database database

How to upload images into MySQL database using PHP code


Firstly, you should check if your image column is BLOB type!

I don't know anything about your SQL table, but if I'll try to make my own as an example.

We got fields id (int), image (blob) and image_name (varchar(64)).

So the code should look like this (assume ID is always '1' and let's use this mysql_query):

$image = addslashes(file_get_contents($_FILES['image']['tmp_name'])); //SQL Injection defence!$image_name = addslashes($_FILES['image']['name']);$sql = "INSERT INTO `product_images` (`id`, `image`, `image_name`) VALUES ('1', '{$image}', '{$image_name}')";if (!mysql_query($sql)) { // Error handling    echo "Something went wrong! :("; }

You are doing it wrong in many ways. Don't use mysql functions - they are deprecated! Use PDO or MySQLi. You should also think about storing files locations on disk. Using MySQL for storing images is thought to be Bad Idea™. Handling SQL table with big data like images can be problematic.

Also your HTML form is out of standards. It should look like this:

<form action="insert_product.php" method="POST" enctype="multipart/form-data">    <label>File: </label><input type="file" name="image" />    <input type="submit" /></form>

Sidenote:

When dealing with files and storing them as a BLOB, the data must be escaped using mysql_real_escape_string(), otherwise it will result in a syntax error.


Just few more details

  • Add mysql field

`image` blob

  • Get data from image

$image = addslashes(file_get_contents($_FILES['image']['tmp_name']));

  • Insert image data into db

$sql = "INSERT INTO `product_images` (`id`, `image`) VALUES ('1', '{$image}')";

  • Show image to the web

<img src="data:image/png;base64,'.base64_encode($row['image']).'">

  • End


This is the perfect code for uploading and displaying image through MySQL database.

<html><body><form method="post" enctype="multipart/form-data"><input type="file" name="image"/><input type="submit" name="submit" value="Upload"/></form><?php    if(isset($_POST['submit']))    {     if(getimagesize($_FILES['image']['tmp_name'])==FALSE)     {        echo " error ";     }     else     {        $image = $_FILES['image']['tmp_name'];        $image = addslashes(file_get_contents($image));        saveimage($image);     }    }    function saveimage($image)    {        $dbcon=mysqli_connect('localhost','root','','dbname');        $qry="insert into tablename (name) values ('$image')";        $result=mysqli_query($dbcon,$qry);        if($result)        {            echo " <br/>Image uploaded.";            header('location:urlofpage.php');        }        else        {            echo " error ";        }    }?></body></html>