您正在尝试使用 PHP 将图像存储在 MySQL 数据库中,但是它没有按预期工作。图像数据未插入数据库。
检查变量插值问题
中您的查询,您正在使用 file_get_contents() 函数来检索图像数据,但您没有明确地将其结果连接到查询字符串。结果,查询包含字符串“file_get_contents($tmp_image)”,而不是实际的图像数据。
解决方案 1:显式串联
串联图像数据正确,你需要跳出字符串去做事情显式:
$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_escape_string(file_get_contents($tmp_image)) . "')";
考虑替代存储
将大型二进制数据(例如图像)存储在MySQL 数据库会使它们变得庞大。如果可能,请考虑使用单独的图像文件存储系统。
以上是如何使用 PHP 成功将图像 Blob 插入 MySQL 数据库?的详细内容。更多信息请关注PHP中文网其他相关文章!