最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

node.js mySQL使用INSERT语句格式发送数组

IT培训 admin 9浏览 0评论

node.js mySQL使用INSERT语句格式发送数组

我在一个数组中有以下内容:

    console.log([userData]) //From HTML Form 
-------------------------------
[ [ 'test3',
    'Alice',
    'Weather',
    'Bob',
    'Doe',
    '[email protected]',
    'Footballer',
    'male',
    'english',
    'married',
    '1965-01-02' ] ]

现在我需要将其插入到mySQL数据库中,结果是语法错误。我似乎无法理解的是如何以mySQL可以“理解”的方式格式化数组

 var sql = "INSERT INTO users (uid,FirstName,LastName,MotherName,FatherName,Email,Profession,Gender,MaritalStatus,Birthday) VALUES ?";
con.query(sql, "'" + userData.join() + "'", function(err) {
    if (err) throw err;
    console.log("inserted")
});

输出:

错误:ER_PARSE_ERROR:您的SQL语法中有错误;查看与MySQL服务器版本对应的手册,以便在''''test3,Alice,Weather,Bob,Doe,john.doe @ gmail,足球运动员,男,英国,已婚,1965-01附近使用正确的语法在第1行-02'

谢谢。

回答如下:

你不应该加入userData,因为一旦加入,它就变成了一个完整的字符串,mysql库会替换成?。整个查询分解如下:

INSERT INTO users (uid,FirstName,LastName,MotherName,FatherName,Email,Profession,Gender,MaritalStatus,Birthday) VALUES "'test3,Alice,Weather,Bob,Doe,[email protected],Footballer,male,english,married,1965-01-02'"

这绝对是一个错误的SQL。

要正确插入值,您必须按原样将值传递给mysql库:

con.query(sql, [[userData]], function(err) {
    if (err) throw err;
    console.log("inserted")
});

辅助参数应为“三重数组”,即[[['test3','alice'....]]]。

其中第一个数组表示你传递一个mysql库的系列参数来做替换,第二个数组包含参数的值(即被替换为?),第三个数组告诉mysql库这个参数是一个数组值。

node.js mySQL使用INSERT语句格式发送数组

我在一个数组中有以下内容:

    console.log([userData]) //From HTML Form 
-------------------------------
[ [ 'test3',
    'Alice',
    'Weather',
    'Bob',
    'Doe',
    '[email protected]',
    'Footballer',
    'male',
    'english',
    'married',
    '1965-01-02' ] ]

现在我需要将其插入到mySQL数据库中,结果是语法错误。我似乎无法理解的是如何以mySQL可以“理解”的方式格式化数组

 var sql = "INSERT INTO users (uid,FirstName,LastName,MotherName,FatherName,Email,Profession,Gender,MaritalStatus,Birthday) VALUES ?";
con.query(sql, "'" + userData.join() + "'", function(err) {
    if (err) throw err;
    console.log("inserted")
});

输出:

错误:ER_PARSE_ERROR:您的SQL语法中有错误;查看与MySQL服务器版本对应的手册,以便在''''test3,Alice,Weather,Bob,Doe,john.doe @ gmail,足球运动员,男,英国,已婚,1965-01附近使用正确的语法在第1行-02'

谢谢。

回答如下:

你不应该加入userData,因为一旦加入,它就变成了一个完整的字符串,mysql库会替换成?。整个查询分解如下:

INSERT INTO users (uid,FirstName,LastName,MotherName,FatherName,Email,Profession,Gender,MaritalStatus,Birthday) VALUES "'test3,Alice,Weather,Bob,Doe,[email protected],Footballer,male,english,married,1965-01-02'"

这绝对是一个错误的SQL。

要正确插入值,您必须按原样将值传递给mysql库:

con.query(sql, [[userData]], function(err) {
    if (err) throw err;
    console.log("inserted")
});

辅助参数应为“三重数组”,即[[['test3','alice'....]]]。

其中第一个数组表示你传递一个mysql库的系列参数来做替换,第二个数组包含参数的值(即被替换为?),第三个数组告诉mysql库这个参数是一个数组值。

发布评论

评论列表 (0)

  1. 暂无评论