1

我应该使用什么将图像保存在数据库中。我必须使用什么类型在 PHP 和 MySQL 中存储和检索图像。

4

5 回答 5

4

经验法则是您不应该将图像存储在数据库中。Blob 可用,但非常糟糕。

您应该做的是将二进制文件存储在比数据库快很多倍的文件系统上,并且在数据库中只存储路径或链接或文件名,并让应用程序从路径加载图像。

这使您可以轻松地为静态文件实现 cdn 或 san 存储等内容。它甚至允许您使用 lighttpd 之类的东西来显示静态内容图像,而不是 apache。

https://blogs.oracle.com/manveen/entry/blob_vs_file_system_storage提供了更多信息,但网络上有大量关于 blob 缺点的统计数据和数据

于 2013-02-08T14:17:52.890 回答
0

使用BLOB数据类型,这意味着二进制大对象

于 2013-02-08T14:12:58.743 回答
0

BLOB 可能比文件存储慢,但复制、备份和恢复单个数据库文件比管理/维护文件结构中的图像要容易得多。

我还建议将图像存储在他们自己的专用数据库中(将属性/标签信息存储在单独的数据库中)。

于 2013-02-08T14:27:19.517 回答
0

简单且优化的选项是将图像上传到服务器并将“图像的url”字符串存储在数据库中。

Incase,您只想存储实际的图像文件,然后使用 Blob 数据类型。

于 2013-02-08T14:30:27.023 回答
-1

将图像存储在数据库中是一个非常糟糕的主意。数据库决定保存一些信息——不是图像或文件。为此,您有 HDD。
相反,您应该将图像保存在磁盘上并将其文件名保存在数据库中。像那样:

$name = uniqid();
file_put_contents($name.".png",$image_data);
mysql_query("INSERT INTO `images` (image) VALUES ('$name.png')") or die(mysql_error()); 

如果您真的坚持将图像保存在数据库中,请使用BLOB

于 2013-02-08T14:28:23.127 回答