【问题标题】:Path syntax for LOAD_FILE using WAMP server使用 WAMP 服务器的 LOAD_FILE 的路径语法
【发布时间】:2017-05-22 03:24:36
【问题描述】:

我正在使用本地数据库,并尝试将图像插入到 Photo VARBINARY(20000) 列中。

我必须使用 LOAD_FILE 的路径是什么?

INSERT INTO ImageTable(PHOTO) VALUES(LOAD_FILE('E:/wamp64/bin/mysql/mysql5.7.14/data/test.jpg'));

是我正在使用的。这会将 NULL 输入到表中。 MySQL也在这条路径下。路径是否必须相对于某些东西?我正在使用命令行。

【问题讨论】:

  • 不要将文件保存在数据库中。 stackoverflow.com/a/41235395/267540
  • 您是否收到文件已找到的错误消息?如果不是,那么 MySQL 正确解释了文件,那么你必须查看文件内容。
  • 我尝试加载一个不存在的文件,但无论如何它不会给出任何错误。 @e4c5:我也有可以使用data:image/jpeg;base64 的字符串,但是使用命令行插入太长了。有什么建议吗?
  • 仔细阅读该答案
  • 好的,所以基本上答案告诉我不要这样做。但这是我正在开发的应用程序的一种要求。我需要插入图像或字符串。

标签: mysql sql database command-line blob


【解决方案1】:

实际上,如果您使用的是图像,则 Varchar 不是正确的类型。您应该改用 BLOB。这应该涵盖它:

INSERT INTO ImageTable(PHOTO) VALUES(1,LOAD_FILE('E:/wamp64/bin/mysql/mysql5.7.14/data/test.jpg'));

进一步搜索 BLOBLONG BLOB 以使用图片。

【讨论】:

  • 对不起,我的错误。它的类型是 VARBINARY(20000),而不是 VARCHAR。 :( 我在主帖中更正了它。
  • 无论如何我写的代码应该会有所帮助。我曾经遇到过同样的问题,只是我使用 varchar 来查找图像路径。 Intead,BLOB 将在您插入的链接上加载图像。 :)
  • 不幸的是,我正在处理现有数据库并且不应该更改列类型。但是使用绝对路径是正确的还是,这不是路径问题?
  • 不是路径问题。如果绝对路径指向图像,应该可以工作。
【解决方案2】:

我禁用了 --secure-file-priv 并且它起作用了。但不确定这是否是问题所在,因为未显示 taht 的错误消息。

【讨论】:

    猜你喜欢
    • 2011-07-31
    • 1970-01-01
    • 1970-01-01
    • 2018-08-18
    • 2021-06-06
    • 2013-04-27
    • 2015-02-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多