2016-03-03 75 views
0
<?php 
$size  = filesize('H:/blog_banner.jpg'); 
$fp   = fopen('H:/blog_banner.jpg','rb'); 
$binary_pic = fread($fp,$size); 
$link  = mysqli_connect('127.0.0.1','root','123456') or die('connect failed!'); 
$binary_pic = base64_encode($binary_pic); 

mysqli_select_db($link, 'rqPro'); 
mysqli_query($link,"insert into tb_pic values('',$binary_pic)") or die('cant perform pic'); 

结果是:如何使用php保存图片?

不能执行PIC。

mysql保存字段中的图片是:中等blob。

我该如何解决这个问题?

+0

使用file_get_contents('tourpic.jpg')来检索图像,如果需要像你想做base64编码并保存到你的mysql字段。但更好的做法通常是将数据库引用保存到文件系统中,这将减少数据库导出大小和数据库负载 –

回答

1

您的插入查询是错误的。您不指定将保存哪个表的字段。 应该.. INSERT INTO tb_pic(field1field2)VALUES( '',$ binary_pic)

而且我的意见,这不是保存在数据库中的图片的好方法。这很重。最好将它保存在你的服务器/目录中。 尽量显得http://php.net/manual/en/function.move-uploaded-file.php

0

你必须引用图像串:

values('','$binary_pic') 

另外,确保图像足够小,以适应中等BLOB中。否则,它将被修剪,并且您将无法正确提取它

注意:如果该表有多于两列,则需要指定插入的数据所针对的列。