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

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

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-28 01:24:09665浏览

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