2016-03-03 65 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中。否則,它將被修剪,並且您將無法正確提取它

注意:如果該表有多於兩列,則需要指定插入的數據所針對的列。