【发布时间】:2018-03-01 20:24:28
【问题描述】:
请帮忙,为什么这段代码不起作用?
let [phones, computers, numbers, accessories, smartwatches] = cat;
let names = ["phones", "computers", "numbers", "accessories", "smartwatches"];
for (let i=0; i<names.length; i++){
let sql = `"INSERT INTO cat (name) VALUES( ${names[i]})" `;
connection.query(sql, function (err, result) {
if (err) throw err;
console.log(result);
console.log("Records inserted");
});
connection.query( "DELETE n1 FROM cat n1, cat n2 WHERE n1.id > n2.id AND n1.name = n2.name");
}
这是一条错误消息: 错误:ER_PARSE_ERROR:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“INSERT INTO cat (name) VALUES(phones)”附近使用正确的语法
当我在没有循环的情况下编写此代码时,它会将数据插入到一个 id(field) 中的名称数组中的所有项目。怎么改?
我改变了一些东西,但现在又出现了另一个错误。看看这个:
let [phones, computers, numbers, accessories, smartwatches] = cat;
let names = ["phones", "computers", "numbers", "accessories", "smartwatches"];
for (let i=0; i<names.length; i++){
let nameses = names[i];
let obj = {"name":"",
"url":""};
obj["name"] = nameses;
obj['url']=cat[i];
console.log(obj);
let sql = ("INSERT INTO cat SET?", obj ) ;
connection.query(sql, function (err, result) {
if (err) throw err;
console.log(result);
console.log("Records inserted");
});
connection.query( "DELETE n1 FROM cat n1, cat n2 WHERE n1.id > n2.id AND n1.name = n2.name");
现在错误是:查询是空的,但是当我 console.log obj 时 - 它给了我正确的结果以及对象的键和值。为什么mysql认为那是空的? :)
【问题讨论】: