使用 PHP 将图像插入 MySQL 数据库可能很棘手。一种常见的错误是使用 file_get_contents() 直接嵌入二进制数据。这样做会导致存储代表函数调用的字符串,而不是实际的图像数据。
要正确插入图像数据,您需要连接以下结果file_get_contents()。这可以通过跳出字符串并显式附加值来完成:
$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)) . "')";
在数据库中存储大型图像可能会导致性能问题。考虑使用单独的文件存储系统,例如 Amazon S3 或文件系统,并将图像路径或引用存储在数据库中。
以上是如何使用 PHP 安全地将图像 Blob 插入 MySQL 数据库?的详细内容。更多信息请关注PHP中文网其他相关文章!