首页 > 后端开发 > php教程 > 如何使用 PHP 成功将 Blob(图像)插入 MySQL?

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

Mary-Kate Olsen
发布: 2024-11-28 01:24:09
原创
709 人浏览过

How to Successfully Insert Blobs (Images) into MySQL using PHP?

使用 PHP 将 Blob 插入 MySQL 数据库

问题:

尝试将图像存储在 MySQL 数据库中,但是插入不成功。数据库表有两列:ImageId (int) 和 Image (longblob)。 PHP 代码使用 file_get_contents() 检索图像数据,并使用以下 SQL 查询将其插入到 Image 列中:

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

但是,图像数据不会存储在数据库中。

解决方案:

问题在于 PHP 代码构造 SQL 查询的方式。 file_get_contents() 函数调用包含在查询字符串的单引号内,这意味着未插入实际图像数据。为了解决这个问题,应该使用 PHP 的变量插值功能:

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

此外,为了确保二进制数据不包含任何可能破坏 SQL 查询的字符,建议使用以下方法清理数据mysql_escape_string() 函数:

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

附加注意事项:

在数据库中存储大型二进制数据可能会导致性能问题。考虑为图像和其他大型对象使用单独的存储介质,例如文件系统或云存储服务。

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

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