将xml作为Blob插入mysql数据库

时间:2019-02-08 15:44:45

标签: mysql node.js typescript

我有一个JSON文件,我将其解析并将INSERT的值解析到数据库中。我的数据库中的列类型为longblob。我的项目是一个使用mysql module的nodejs应用程序。 XML以字符串形式存储在JSON中,我使用类似于以下内容的东西:

    private insertXMLBlob(file: ILogRecord): Promise<any> {
    return new Promise((resolve, reject) => {
        connection.query(`INSERT INTO blob_table(myBlob) VALUES(BINARY(${file.myXMLString}))`, (error, results) => {
            if (error) {
                reject(error);
            } else {
                console.log(results);
                resolve(results.insertId);
            }
        });
    });
}

这给了我错误:

  

错误:错误:ER_PARSE_ERROR:您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以获取在'$ {myXMLString}'附近使用的正确语法

我还尝试使用Buffer.from(file.myXMLString)docs)并将缓冲区直接插入到我的表中。我看着this example似乎已经过时了。如果我做的设计根本上有问题(例如列类型),请告诉我。

1 个答案:

答案 0 :(得分:0)

如果file.myXMLString确实是字符串,那么将其转换为Buffer应该没问题。但是您似乎转换了myXMLString,而不是file.myXMLString。试试:Buffer.from(file.myXMLString)

或在注释中建议使用TEXT类型字段并直接插入。