1

I'm trying to develop php page to insert image into MySql Database using php

I want when click on button 'Save' then insert Image in DB

How I can do it?

<?php
define("DB_SERVER", "localhost");
define("DB_USER", "root");
define("DB_PASS", "");
define("DB_NAME", "XXXXX");
$connection = mysql_connect(DB_SERVER,DB_USER,DB_PASS);
if (!$connection) {
    die("Database connection failed: " . mysql_error());
}

$db_select = mysql_select_db(DB_NAME,$connection);
if (!$db_select) {
    die("Database selection failed: " . mysql_error());
}
if(isset($_POST['Register_Button']))
{
   $Fname=$_POST['Fname'];
   $Lname=$_POST['Lname'];

   insert First Name, Last Name, Image Name, Image
}
?>
<form method="post">
First Name: <input type="text" name="Fname" >
Last Name: <input type="text" name="Lname" >
<input type="submit" Name="Register_Button" value="Save">
</form><!-- form -->

And My Table in Database:

Id (INT) AUTO_INCREMENT
FName varchar(50)
LName varchar(50)
PicName varchar(25)
image   blob 

How I can Insert And Display Image in MySQL php

2 Answers 2

1

Inserting an image into database as blob is not always a good solution, you can store the image into a server folder and then store the url in the table column instead of the entire image.

Bytheway, to insert an image into database you must insert it as a file pointer.

if(isset($_FILES['image']) && $_FILES['image']['size'] > 0) {
    $imgName = $_FILES['image']['tmp_name'];
    $filePointer = fopen($imgName, 'rb');
}

And the sql query will be

ISERT INTO table (image) VALUES ( $filePointer )
Sign up to request clarification or add additional context in comments.

Comments

0

I have updated your code :

use need to use enctype in form and an additional image field.

$db_select = mysql_select_db(DB_NAME,$connection);
if (!$db_select) {
    die("Database selection failed: " . mysql_error());
}
if(isset($_POST['Register_Button']))
{
   $Fname=$_POST['Fname'];
   $Lname=$_POST['Lname'];

   $imgName = $_FILES['image']['tmp_name'];
   $file_image = fopen($imgName, 'rb');

   if(isset($_FILES['image']) && $_FILES['image']['size'] > 0) {
   $query="insert into table (FName,LName,image) values ('".$Fname."','".$Lname."','".$file_image."')";
   }
}
?>
<form method="post" enctype="multipart/form-data">
First Name: <input type="text" name="Fname" >
Last Name: <input type="text" name="Lname" >
Photo: <input type="file" name="image" >
<input type="submit" Name="Register_Button" value="Save">
</form><!-- form -->

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.