我有一个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。如果我做的设计根本上有错误(例如列类型),请告诉我。

最佳答案

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

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

08-08 04:56