我正在尝试使用php
开发php页面以将图像插入MySql数据库我想点击按钮'保存'然后在DB中插入图像
我怎么做?
<?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 -->
我在数据库中的表:
Id (INT) AUTO_INCREMENT
FName varchar(50)
LName varchar(50)
PicName varchar(25)
image blob
如何在MySQL php中插入和显示图像
答案 0 :(得分:2)
将图像作为 blob 插入数据库并不总是一个好的解决方案,您可以将图像存储到服务器文件夹中,然后将URL存储在表格列而不是整个图像中。
顺便说一下,要将图像插入数据库,必须将其作为文件指针插入。
if(isset($_FILES['image']) && $_FILES['image']['size'] > 0) {
$imgName = $_FILES['image']['tmp_name'];
$filePointer = fopen($imgName, 'rb');
}
sql查询将是
ISERT INTO table (image) VALUES ( $filePointer )
答案 1 :(得分:1)
我已更新您的代码:
使用需要在表单和附加图像字段中使用enctype
。
$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 -->