如何将图像插入mysql表?

时间:2013-08-02 09:43:48

标签: php html mysql

我已经为我的网站管理员创建了一个表单,通过它可以将新的库存输入到mysql表笔记本中,表单有6个字段 1. Modelno 2. CPU 3. RAM 4.硬盘 5.显示 6.上传

当文件上传时,它会转到分配的目录,就像战斗的一半,表笔记本电脑有一个BLOB类型的字段图片,如何在该字段中插入数据?

表单的html代码如下:

<html>
<head>
</head>
<body>
<form action="stockm.php" method="post">
<table cellspacing="10">
<tr>
<td>
Model No:
</td>
<td>
<input type="text" name="fname">
</td>
</tr>
<tr>
<td>
C.P.U:
</td>
<td>
<input type="text" name="fcpu">
</td>
</tr>
<tr>
<td>
RAM:
</td>
<td>
<input type="text" name="fram">
</td>
</tr>
<td>
HDD:
</td>
<td>
<input type="text" name="fhdd">
</td>
</tr>
<td>
Display:
</td>
<td>
<input type="text" name="fdisplay">
</td>
</tr>
<tr>
<td>
Upload: 
</td>
<td>
<input type="file" name="file" id="file"><br>
</td>
</tr>
<tr>
<td>
</td>
<td>
<input type="submit" name="fsubmit" value="Deposit"> 
</table>
</form>
</body>
</html>

和数据输入的代码就是这个,请告诉我需要添加什么?

<html>
<head>
</head>
<body>
<?php
$con=mysqli_connect("localhost","****","******","stock");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$sql="INSERT INTO Laptops (Modelno, Cpu, RAM, HDD, Display)
VALUES
('$_POST[fname]','$_POST[fcpu]','$_POST[fram]','$_POST[fhdd]','$_POST[fdisplay]')";

if (!mysqli_query($con,$sql))
  {
  die('Error: ' . mysqli_error($con));
  }
echo "1 record added";

mysqli_close($con);
?>
</body>
</html>

提前谢谢

4 个答案:

答案 0 :(得分:2)

通常建议您不要将图像直接存储到数据库中。而是将图像位置存储在您的服务器上,名称和其他属性。

但是如果你想直接将它存储在表中,你可以使用mysql中的LOAD_FILE函数。

请参阅此question。答案可能会有所帮助。

答案 1 :(得分:0)

将您的表配置为blob,并在将图像放入表格之前对其进行base64编码

答案 2 :(得分:0)

在一般实践中,我们将图像文件上传到Web服务器,然后将文件路径信息保存在数据库服务器中。

使用这种方法,数据库大小可以保持很小

答案 3 :(得分:-1)

<?php
$con=mysqli_connect("localhost","cao","sTvs3bRmfvmWRGBc","stock");// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$ImageName = $_FILES['fdisplay']['name'];
$fileElementName = 'pimg';
$path = 'upload/';   // path where you want to save images
$location = $path . $_FILES['fdisplay']['name']; 
move_uploaded_file($_FILES['fdisplay']['tmp_name'], $location); 
$sql="INSERT INTO Laptops (Modelno, Cpu, RAM, HDD, Display)
VALUES
('$_POST[fname]','$_POST[fcpu]','$_POST[fram]','$_POST[fhdd]','$ImageName')";
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
echo "1 record added";
mysqli_close($con);
?>