node.js mySQL发送具有INSERT语句格式的数组

node.js mySQL发送具有INSERT语句格式的数组,mysql,node.js,passport.js,Mysql,Node.js,Passport.js,我在一个数组中有以下内容,该数组是从以下位置打印的: console.log([userData]) //From HTML Form ------------------------------- [ [ 'test3', 'Alice', 'Weather', 'Bob', 'Doe', 'john.doe@gmail.com', 'Footballer', 'male', 'english', 'marrie

我在一个数组中有以下内容,该数组是从以下位置打印的:

    console.log([userData]) //From HTML Form 
-------------------------------
[ [ 'test3',
    'Alice',
    'Weather',
    'Bob',
    'Doe',
    'john.doe@gmail.com',
    '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\u PARSE\u错误:您的SQL语法有错误;检查 右边是与MySQL服务器版本对应的手册 使用near的语法 ''测试3,爱丽丝,天气,鲍勃,多伊,约翰。doe@gmail.com,足球运动员,男性,英国人,已婚,1965-01-02' 在1号线


谢谢。

您不应该加入userData,因为一旦加入,它将成为一个完整的字符串,mysql库将替换为
。整个查询如下所示:

在用户(uid、FirstName、LastName、MotherName、FatherName、Email、Profession、Gender、MaritalStatus、Birthday)值中插入“'test3、Alice、Weather、Bob、Doe、john。doe@gmail.com,足球运动员,男性,英国人,已婚,1965-01-02'

这绝对是一个错误的SQL

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

con.query(sql,[[userData]],函数(err){
如果(错误)抛出错误;
控制台日志(“插入”)
});
第二个参数应该是“三重数组”,即[test3',alice'..]]


第一个数组表示您正在为mysql库传递一系列参数以进行替换,第二个数组包含参数的值(即被替换为
),第三个数组告诉mysql库此参数是一个值数组。

您不应该加入userData,因为一旦加入,它变成一个完整的字符串,mysql库将替换为
。整个查询如下所示:

在用户(uid、FirstName、LastName、MotherName、FatherName、Email、Profession、Gender、MaritalStatus、Birthday)值中插入“'test3、Alice、Weather、Bob、Doe、john。doe@gmail.com,足球运动员,男性,英国人,已婚,1965-01-02'

这绝对是一个错误的SQL

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

con.query(sql,[[userData]],函数(err){
如果(错误)抛出错误;
控制台日志(“插入”)
});
第二个参数应该是“三重数组”,即[test3',alice'..]]


第一个数组表示您正在为mysql库传递一系列参数以进行替换,第二个数组包含参数的值(即被替换为
),第三个数组告诉mysql库此参数是一个值数组。

用户数据中
英语
是什么?你们在数据库中有那个列吗。这就是问题所在。表中的列数和传递的值数不一样。@HarshilDoshi如果这是错误,那么这就是错误消息。@HarshilDoshi太棒了!这也是我忘记略读的问题之一。
userdata
中的
english
是什么?你们在数据库中有那个列吗。这就是问题所在。表中的列数和传递的值数不一样。@HarshilDoshi如果这是错误,那么这就是错误消息。@HarshilDoshi太棒了!这也是我忘记略读的问题之一。