如何使用 PHP 成功将 BLOB(图像)插入 MySQL?

Patricia Arquette
发布: 2024-11-27 22:56:11
原创
310 人浏览过

How Can I Successfully Insert BLOBs (Images) into MySQL Using PHP?

使用 PHP 将 BLOB 插入 MySQL 数据库:问题和解决方案

尝试在 MySQL 数据库中存储图像时,某些用户可能会遇到图像不正确的问题未正确插入。这种差异可能是由于对 PHP 如何处理内插字符串中的函数调用的误解而产生的。

问题

在以下代码中,目的是将二进制图像数据存储在数据库中:

$sql = "INSERT INTO ImageStore(ImageId,Image)               
        VALUES('$this->image_id','file_get_contents($tmp_image)')";
登录后复制

但是,这种方法创建一个包含“file_get_contents($tmp_image)”的字符串,而不是实际的字符串

解决方案 1:显式串联

要解决此问题,函数调用必须在字符串中显式串联:

$sql = "INSERT INTO ImageStore(ImageId,Image)
        VALUES('$this->image_id','" . file_get_contents($tmp_image) . "')";
登录后复制

现在,图像数据是在执行查询之前正确插入到字符串中。

解决方案 2:转义特殊字符

二进制图像数据可能包含特殊字符,例如单引号,这可能会使 SQL 查询无效。为了缓解这种情况,应该在插值之前对数据进行转义:

$sql = "INSERT INTO ImageStore(ImageId,Image)
        VALUES('$this->image_id','" . mysql_escape_string(file_get_contents($tmp_image)) . "')";
登录后复制

解决方案 3:替代存储注意事项

需要注意的是,在数据库中存储大量图像数据可能效率低下。考虑替代存储选项,例如将图像路径存储在数据库中,将实际图像存储在专用文件系统或内容交付网络 (CDN) 中。

以上是如何使用 PHP 成功将 BLOB(图像)插入 MySQL?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板