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