在MySQL中存储图像

Gau*_*mar 2 mysql

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

Dan*_*llo 14

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

CREATE TABLE MyTable (id INT, image BLOB);

INSERT INTO MyTable (id, image) VALUES(1, LOAD_FILE('/tmp/your_image.png'));
Run Code Online (Sandbox Code Playgroud)

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

GRANT FILE ON *.* TO 'mysql_user'@'localhost';
Run Code Online (Sandbox Code Playgroud)

  • 我在 load_file 中给出了路径 as(c:\dir\a.jpg) 但在执行“select”操作后我看到 NULL(不是我的 img)被存储,为什么? (2认同)

小智 5

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

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

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

  • 特殊原因?嗯,让我们思考一下。1-这不是Web应用程序,并且机器上未安装Web服务器(用于将图像提供给客户端)吗?2-加上没有文件共享的首选?3-具有连接远程数据库和配置功能的应用程序吗?我还能数更多... (2认同)