Q:

How to insert image in database using PHP

belongs to collection: PHP Programming Exercises

0

How to insert image in database using PHP

In this exercise, you will learn how to insert an image in the database using PHP. In some applications, there may be a requirement to develop for image upload. Database is preferred best to store data and the file system is the best place to store files. For storing an image in a database, we can store the name or path of the image in the database and store the image as a file on the server. So that the web server can easily access it where we want or send it to the visitor.

All Answers

need an explanation for this answer? contact us directly to get an explanation for this answer

PHP provides the easiest way for uploading and storing images in the MySQL database and saved the image in a particular location. First, let's create an HTML form that allow users to choose the image file they want to upload. The enctype='multipart/form-data' form attributes allow files to be sent through post.

<form method='post' action='#' enctype='multipart/form-data'>
<div class="form-group">
 <input type="file" name="image" >
</div> 
<div class="form-group"> 
 <input type='submit' name='submit' value='Upload' class="btn btn-primary">
</div> 
</form>

The form looks something like this -

PHP store image in MySQL

Next, create a database to store files. You can either copy paste this CREATE statement in your database or use your existing one.

CREATE TABLE `image` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `file_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
 `uploaded_on` datetime NOT NULL,
 `status` enum('1','0') COLLATE utf8_unicode_ci NOT NULL DEFAULT '1',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

Next, we have written the database connection code. Make sure to replace 'hostname', 'username', 'password' and 'database' with your database credentials and name.

$conn = mysqli_connect('hostname', 'username', 'password', 'database');
//Check for connection error
if($conn->connect_error){
  die("Error in DB connection: ".$conn->connect_errno." : ".$conn->connect_error);    
}

Next, we have written code to check the submitted image, valid file extension and insert it into the database. The move_uploaded_file() function of PHP moves an uploaded file to a new destination. It returns TRUE on success, FALSE on failure.

if(isset($_POST['submit'])){

	$filename = $_FILES['image']['name'];
	
	// Select file type
	$imageFileType = strtolower(pathinfo($filename,PATHINFO_EXTENSION));
	
	// valid file extensions
	$extensions_arr = array("jpg","jpeg","png","gif");
 
	// Check extension
	if( in_array($imageFileType,$extensions_arr) ){
 
	// Upload files and store in database
	if(move_uploaded_file($_FILES["image"]["tmp_name"],'upload/'.$filename)){
		// Image db insert sql
		$insert = "INSERT into image(file_name,uploaded_on,status) values('$filename',now(),1)";
		if(mysqli_query($conn, $insert)){
		  echo 'Data inserted successfully';
		}
		else{
		  echo 'Error: '.mysqli_error($conn);
		}
	}else{
		echo 'Error in uploading file - '.$_FILES['image']['name'].'
'; } } }

need an explanation for this answer? contact us directly to get an explanation for this answer

total answers (1)

PHP Programming Exercises

This question belongs to these collections

Similar questions


need a help?


find thousands of online teachers now
How to remove last character from string using PHP... >>
<< How to fetch data from database in PHP and display...