【问题标题】:Upload blob into MySQL using SQL使用 SQL 将 blob 上传到 MySQL
【发布时间】:2017-02-19 17:58:49
【问题描述】:

我的目的是每天自动将 blob 数据上传到 MySQL/MariaDB 表字段中。我想为此使用 SQL 预定事件。但我无法整理 SQL 查询。原始文件在网络上,但即使对于我的本地机器,我也找不到查询...

当我在 phpMyAdmin 中使用“添加事件”时,我可以浏览本地机器上的文件。这是我自动生成的代码:

INSERT INTO `items` (`id`, `data`) 
VALUES (NULL, 0x5b7b0d0a202020202276616c31223a2031312c0d0a202020202276616c32223a2031322c0d0a202020202276616c33223a2031330d0a7d2c207b0d0a202020202276616c31223a2032312c0d0a202020202276616c32223a2032322c0d0a202020202276616c33223a2032330d0a7d2c207b0d0a202020202276616c31223a2033312c0d0a202020202276616c32223a2033322c0d0a202020202276616c33223a2033330d0a7d5d);

这不像...VALUES (NULL, "C:\data.json");,所以我有点无能为力。非常感谢任何指导/示例。

【问题讨论】:

    标签: mysql blob mariadb mysql-event


    【解决方案1】:

    出于安全原因,MySQL/MariaDB 无法访问磁盘等。您必须使用其他语言(PHP/Java/...)编写代码才能打开文件,然后执行INSERT

    那个十六进制看起来像普通文本("val1": 11, utf8:19:19'...),使用十六进制有什么原因吗?其实看起来像JSON;有关系吗?

    另见UNHEX() 函数。查看各种JSON 函数。等等。

    【讨论】:

    • 前两句解释了它。谢谢你。该文件是我自己自定义创建的,是的,它是 json。十六进制在自动生成查询时来自数据库。感谢您的参考,但是为了使用 JSON 函数,我首先必须在我的数据库中拥有该文件:)
    • 那么你可能需要:INSERT ... VALUES ( ..., UNHEX("5b7b0d0a202020202276616c31223a20"))。请注意,0x 已被删除。
    猜你喜欢
    • 2020-10-10
    • 1970-01-01
    • 2016-05-26
    • 1970-01-01
    • 2021-12-30
    • 2015-05-25
    • 2013-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多