在MySQL中存储图像

时间:2010-06-10 13:07:13

标签: mysql

请给我查询在MySQL数据库中插入图像。我是stackoverflow的新手,所以如果我的问题没有达到标记,请忽略我。

4 个答案:

答案 0 :(得分:13)

如果图像位于MySQL主机上,您可以使用LOAD_FILE()功能将图像存储在BLOB字段中:

CREATE TABLE MyTable (id INT, image BLOB);

INSERT INTO MyTable (id, image) VALUES(1, LOAD_FILE('/tmp/your_image.png'));

您必须确保MySQL可以读取图像文件,并确保MySQL用户具有FILE权限。要授予FILE权限,请以root用户身份登录并执行:

GRANT FILE ON *.* TO 'mysql_user'@'localhost';

答案 1 :(得分:5)

是否有一个特殊原因导致您无法存储对图像的引用,而不是实际图像?

图像很大 - 它们使数据库变大。 SQL可能很痛苦(因为它不是面向对象的)并且没有图像类型。

您可以将它们存储为BLOB ...如果您想要编写所有编码,编码,检查等。

答案 2 :(得分:2)

您可以使用BLOB字段来执行此操作,但我通常不建议这样做。简单地将图像存储在文件系统上并将数据库的路径存储在数据库中几乎总是更好。

ETA:

有关更多讨论,请参阅this question

答案 3 :(得分:0)

将图像存储在外部文件夹中并将参考存储在数据库中始终是一个更好的主意。

以下是在数据库中上传图像的分步指南。 http://www.phpriot.com/articles/images-in-mysql/7

http://forum.codecall.net/topic/40286-tutorial-storing-images-in-mysql-with-php/

以下是从数据库中检索图像的分步指南的链接 http://forum.codecall.net/topic/40849-tutorial-storing-images-in-mysql-with-php-part-ii-display-your-images/

有关BLOB的更多信息 http://forums.mysql.com/read.php?20,17671,27914