【问题标题】:Insert image into MYSQL Table using SQL Statement使用 SQL 语句将图像插入 MYSQL 表
【发布时间】:2018-12-28 07:31:31
【问题描述】:

我需要在 MYSQL 数据库表中插入图像。图像存储在本地磁盘中。我正在使用 LOAD_FILE() 插入图像,但它只存储路径而不是图像。

如果无法从本地磁盘插入,我可以从哪里获取图像?请给我一个解决方案,说明我需要哪些资源来将图像存储到数据库中。

【问题讨论】:

    标签: mysql database web blob mysql-loadfile


    【解决方案1】:

    我不确定你的应用是做什么的,但我强烈建议不要将图像直接存储到 MYSQL 数据库中,从长远来看,你的数据库会滞后。

    要回答您的问题,您需要执行以下操作:-

    第 1 步:创建 MySQL 表

    请创建一个包含 blob 类型字段的 mysql 表,以保存您的图像。

    在我们的表格中,我们只有两个字段:

    1) int 类型的 image_id

    2) blob 类型的图像

    这是创建表的查询:

    创建表格图片( image_id int(10) NOT NULL auto_increment, 图像块, 主键 (image_id) );

    第 2 步:将图片插入表格中

    现在我们可以使用 insert into sql 将图像插入到表中。下面是sql的例子:

    插入图片 VALUES(1, LOAD_FILE('d:\flower.gif'));

    我们使用 MySQL 的 LOAD_FILE() 函数将图像数据插入数据库。

    插入数据后,您可以使用 MySQL 工具查看。

    希望能解决你的问题:)。

    【讨论】:

    • 懒惰?这完全取决于文件的大小
    • 确切地说,如果您打算存储一些图像不会有问题,如果您达到那个点,您的数据库中有大约 500MB 的图像,那么您的用户将遇到加载缓慢的问题,但这完全取决于您如何实现应用程序的其余部分。也许将图像参考作为字符串存储在数据库中会是一个更好的选择。
    • 这与整个数据库的大小无关,而与单个文件的大小有关。例如,如果它们通常低于 100k,那么将它们存储在数据库中似乎效果很好。
    【解决方案2】:

    而不是将图像放入数据库。 只需将数据库中的相对路径和系统上的实际文件放入即可。

    获取 1 个基本目录:/root/child/images

    需要存储的图片有image1.jpg、image2.jpg等

    只需将“image1.jpg”存储在数据库中即可。

    所以在获取数据的同时,获取文件名,将其与基本目录路径结合起来即可。

    【讨论】:

    • 它将使您的数据库保持较小的大小。性能也会提高。备份将很容易,花费的时间更少。
    【解决方案3】:

    我能够通过首先将图像(fileName.jpg)文件移动到下面的文件夹(在我的情况下)C:\ProgramData\MySQL\MySQL Server 5.7\Uploads 来完成这项工作,然后我执行了下面的命令,它对我有用,

    UPDATE tbl_name SET logo=LOAD_FILE('C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/fileName.jpg') where id='qweq12';
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2012-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-04
      • 2018-09-25
      相关资源
      最近更新 更多