user2161781
user2161781

Reputation:

PHP Insert And Display Image

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

Upvotes: 1

Views: 479

Answers (2)

Vikas Umrao
Vikas Umrao

Reputation: 2615

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 -->

Upvotes: 0

The Phoenix
The Phoenix

Reputation: 11

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 )

Upvotes: 1

Related Questions