Mysql SQl不接受节点js中的插入查询抛出ER\u BAD\u字段\u错误

Mysql SQl不接受节点js中的插入查询抛出ER\u BAD\u字段\u错误,mysql,node.js,Mysql,Node.js,代码:“ER_BAD_FIELD_ERROR”, errno:1054, sqlMessage:“字段列表”中的未知列“Karan”, sqlState:'42S22', 索引:0, sql:'将值(1,Karan,36000,20)插入员工(id,empname,empsal,empage)中' 当我传递值时,他们会为员工姓名抛出此错误,我建议使用参数,这也有其他好处(特别是防止SQL注入) 该文件记录在: 您可以很容易地更改函数setData以执行以下操作: const axios = re

代码:“ER_BAD_FIELD_ERROR”, errno:1054, sqlMessage:“字段列表”中的未知列“Karan”, sqlState:'42S22', 索引:0, sql:'将值(1,Karan,36000,20)插入员工(id,empname,empsal,empage)中'


当我传递值时,他们会为员工姓名抛出此错误,我建议使用参数,这也有其他好处(特别是防止SQL注入)

该文件记录在:

您可以很容易地更改函数setData以执行以下操作:

const axios = require('axios');
const mysql = require('mysql');

var con = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: 'YEX8QHOG@a',
    database: 'test',
});

con.connect((err) => {
    if (err) {
        throw err;
    }
    console.log('Connected...');
});

let createTable = 'CREATE TABLE employee(id VARCHAR(5),empname VARCHAR(30),empsal VARCHAR(30),empage VARCHAR(30))';
con.query(createTable, function (err, result, feilds) {
    if (err) {
        throw err;
    }
    console.log('Db Created');
    console.log(result);
});

function setData(id, empname, empsal, empage) {
    let query = `INSERT INTO employee (id,empname,empsal,empage) VALUES (${id},${empname},${empsal},${empage})`;
    con.query(query, function (err, result) {
        if (err) {
            throw err;
        } else {
            console.log('Data insert', id);
            console.log(result);
        }
    });
}

async function putData() {
    let url = 'http://dummy.restapiexample.com/api/v1/employees';
    let data = await axios.get(url);
    let dataarr = await data.data.data;
    console.log(dataarr);

    setData('1', 'Karan', '36000', '20');
    dataarr.map((emp) => {
    setData(emp.id, emp.employee_name, emp.employee_salary, emp.employee_age);
        console.log(typeof emp.id, typeof emp.employee_name, typeof emp.employee_salary, typeof emp.employee_age);
    });
}

putData();

对任何类型的数据使用引号“${id}”

这是否回答了您的问题?这很容易发生SQL注入,OP应该遵循这一点。
function setData(id, empname, empsal, empage) {
    let query = `INSERT INTO employee (id,empname,empsal,empage) VALUES (?,?,?,?)`;
    let parameters = [id, empname, empsal, empage];
    con.query(query, parameters, function (err, result) {
        if (err) {
            throw err;
        } else {
            console.log('Data insert', id);
            console.log(result);
        }
    });
}
let query = `INSERT INTO employee (id,empname,empsal,empage) VALUES ('${id}','${empname}','${empsal}','${empage}')`;