[ Node.js ] ER_BAD_FIELD_ERROR: Unknown column '(你提交的字段)' in 'field list'

版权声明:个人学习记录,由于能力和时间有限,如果有错误望读者纠正,谢谢! 转载请注明出处 谢谢合作 https://blog.csdn.net/qq_43377749/article/details/88650601

今天在使用 Node.js 搭建个人服务器的过程使用了 mysql 数据库,发生了这个错误。

由于是远程 post 过来的请求,所以一直以为是字符串就没事了忽略了类型

.

这个报错的原因:

传入数据的类型与数据库内的数据类型不匹配

比如我这里是要传入一个字符串:

var save = function save(connection, response, params){);
  var myObj = {
    "nickname" : params.body.nickname  +  "",
    "phone"    : params.body.phone     +  "",
    "password" : params.body.password  +  "",
    "avatar"   : params.body.avatar    +  "",
  };
  // customers guests
  var string = 'INSERT INTO customers(id,phone,password,avatar) VALUES(' + myObj.nickname + ',' + myObj.phone + ',' + myObj.password + ',' + myObj.avatar + ')';
  //插入数据
  connection.query(string, function (error, results, fields) {
    if (error) throw error;
    console.log('The solution is: ', results);
    response.end(JSON.stringify(results));
  });
  connection.end();
}

其中 params.body.nickname    params.body.phone 等都是以字符串形式上传的,而我数据库中这几列也都是以字符串定义的,所以就理所当然了

也就是忽略了 SQL 命令的格式,正确的敏玲格式应该如下:

var string = 'INSERT INTO customers(nickname,phone,password,avatar) VALUES(' + '"' + myObj.nickname + '"' + ',' + '"' + myObj.phone + '"' + ',' + '"' + myObj.password + '"' + ',' + '"' + myObj.avatar + '"' + ')';

也就是在每个变量的两头都加上了 ---> ‘"’ <--- (双引号),结果如下:

// 保存
var save = function save(connection, response, params){
  // var myObj = JSON.parse((JSON.stringify(params)));
  var myObj = {
    "nickname" : params.body.nickname ,
    "phone"    : params.body.phone    ,
    "password" : params.body.password ,
    "avatar"   : params.body.avatar   ,
  };
  // customers guests
  var string = 'INSERT INTO customers(nickname,phone,password,avatar) VALUES(' + '"' + myObj.nickname + '"' + ',' + '"' + myObj.phone + '"' + ',' + '"' + myObj.password + '"' + ',' + '"' + myObj.avatar + '"' + ')';
  //插入数据
  connection.query(string, function (error, results, fields) {
    if (error) throw error;
    console.log('The solution is: ', results);
    response.end(JSON.stringify(results));
  });
  connection.end();
}

希望我的解决对你有帮助~~~

猜你喜欢

转载自blog.csdn.net/qq_43377749/article/details/88650601
今日推荐