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.
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.
The form looks something like this -
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.
need an explanation for this answer? contact us directly to get an explanation for this answerif(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'].''; } } }