【问题标题】:Storing images in MySQL [closed]在 MySQL 中存储图像 [关闭]
【发布时间】:2011-03-02 04:05:56
【问题描述】:

请给我在 MySQL 数据库中插入图像的查询。我是stackoverflow的新手,所以如果我的问题不符合要求,请忽略我。

【问题讨论】:

标签: mysql


【解决方案1】:

您不能存储对图像的引用而不是实际图像是否有特殊原因?

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

如果你想编写所有的编码、编码、检查等,你可以将它们存储为BLOB...

【讨论】:

  • 特殊原因?嗯,让我们想想。 1-这不是网络应用程序,并且机器上没有安装网络服务器(向客户端提供图像)? 2-加上没有文件共享首选? 3- 具有连接远程数据库和配置功能的应用程序?我可以数更多...
【解决方案2】:

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

这是在数据库中上传图片的分步指南。 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

【讨论】:

    【解决方案3】:

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

    预计到达时间:

    更多讨论请见this question

    【讨论】:

      【解决方案4】:

      如果图像位于您的 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';
      

      【讨论】:

      • 我在 load_file 中给出了路径为(c:\dir\a.jpg) 但在执行select 操作后,我看到存储了 NULL(不是我的 img),为什么?
      • @gautam:看起来是权限问题。您必须确保 MySQL 服务可以读取您正在读取的文件。
      • @gautam:另外,我认为在 Windows 中你需要像这样指定你的路径:'c:\\dir\\a.jpg'
      • 它不工作,也为空......
      猜你喜欢
      • 2014-05-28
      • 1970-01-01
      • 2021-03-01
      • 2013-07-19
      • 1970-01-01
      • 1970-01-01
      • 2016-12-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多