加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

php将图片保存入mysql数据库失败的解决方法

发布时间:2020-05-24 03:05:07 所属栏目:PHP 来源:互联网
导读:这篇文章主要介绍了php将图片保存入mysql数据库失败的解决方法,详细分析了php将图片保存入数据库遇到的问题及对应的解决方法,并总结了相关的技巧,具有一定的参考借鉴价值,需要的朋友可以参考下

本文实例分析了php将图片保存入mysql数据库失败的解决方法。分享给大家供大家参考。具体分析如下:

图片保存数据库并不是一个明智的做法,我们多半是把图片保存到服务器,然后把图片地址保存到数据库,这样我们每次只要读出图片地址就可以显示了,但下面我还是来介绍一个图片保存到mysql数据库的问题解决办法,代码如下: 代码如下:

$db->execute("insert db2.testimg (img) values ('$img') ;");

报错:

,Mo?'^WZ4in??T春??????U?楹?' at line 1

代码如下: 代码如下:

继续报错,各种搜索,百度里的结果都是addslashes,要不就是addslashes也没有的,真是扯淡啊. 代码如下:

插入成功,图片文件17.0k,出来进行base64_decode,显示正常,找到个16进制的办法: 代码如下:

有效,输出不用解密,存入数据库很大 25K,比base64还坑爹呢,再找,后来,发现phpmyadmin直接上传的图片文件可以用文件比base64的小,文件12.8k.

翻phpmyadmin 源代码,common.lib.php文件183有个神奇的函数,代码如下: 代码如下:if ($crlf) {
$a_string = str_replace("n",'n',$a_string);
$a_string = str_replace("r",'r',$a_string);
$a_string = str_replace("t",'t',$a_string);
}

if ($php_code) {
$a_string = str_replace(''',''',$a_string);
} else {
$a_string = str_replace(''','''',$a_string);
}

return $a_string;
} // end of the 'PMA_sqlAddslashes()' function$img = PMA_sqlAddslashes($img);
文件大小12.8K 和phpmyadmin的一样大.

例,前台image.html,代码如下: 代码如下: 上传图片

后台处理upimage.php代码如下: 代码如下:$mysqli=mysql_connect("localhost","root","123456″); //连接数据库函数
mysql_select_db("test"); //选择数据库
//插入出数据库语句,图片数据前要加上0x,用于表示16进制数
if(mysql_query("insert into images(name,type,image) values('".$name."','".$type."',0x".$imgdata.")"))
echo "
插入成功!

显示图片
";
else
echo "
插入失败!
";
mysql_close();
}else
echo "
请先选择图片!

点此返回
";
} else
echo "
请先选择图片!

点此返回
";
?>
显示图片disimage.php,代码如下:
<div class="codetitle"><a style="CURSOR: pointer" data="18215" class="copybut" id="copybut18215" onclick="doCopy('code18215')"> 代码如下:<div class="codebody" id="code18215"><?php
mysql_connect("localhost","123456″);
mysql_select_db("test");
//显示最新插入的那张图片
$result=mysql_query("select image from images where id=(select max(id) from images)");
$row=mysql_fetch_object($result);
header("Content-Type:image/pjpeg");
echo $row->image;
mysql_close();
?>

结论:

PMA_sqlAddslashes好用 文件12.8k 和原来图片一样大

bin2hex 16进制 好用文件25K

base64_encode 好用,出来的文件需要base64_decode 17K

addslashes 不好用,继续报错,注明,在某些windows机器上addslashes好用.

希望本文所述对大家的php程序设计有所帮助。

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读