我有一个名为“网站”的数据库,它有一个“用户”表,其中有5列,分别是:
id
,first_name
,last_name
,username
和password
我已经在一个名为User.js的js文件中声明了构造函数,并且我有一个文件UserDB.js,它将在我的网站的注册表单中执行SQL命令,以在数据库中添加详细信息。
由于注册页面没有“id”(因为id用于添加值增量),所以我只想将first_name
、last_name
、username
、password
插入到有5个值的数据库记录中,但是我会从邮递员那里得到以下消息
"sqlMessage": "Out of range value for column 'id' at row 1",
这是我的UserDB.js文件,我必须放置什么来不影响id列?
UserDB.js -更新
insert(user, callback) {
var sql = "INSERT INTO website.users VALUES(?,?,?,?)";
db.query(sql, [user.getFirstName(), user.getLastName(), user.getUsername(), user.getPassword()], callback)
}
邮差调查结果:
{
"code": "ER_WRONG_VALUE_COUNT_ON_ROW",
"errno": 1136,
"sqlMessage": "Column count doesn't match value count at row 1",
"sqlState": "21S01",
"index": 0,
"sql": "INSERT INTO website.users VALUES('first','last','user','123')"
}
User.js
"use strict";
class User {
constructor(first_name, last_name, username, password) {
this.first_name = first_name;
this.last_name = last_name;
this.username = username;
this.password = password;
}
getFirstName() {
return this.first_name;
}
getLastName() {
return this.last_name;
}
getUsername() {
return this.username;
}
getPassword() {
return this.Password;
}
}
module.exports = User;
发布于 2018-02-04 03:43:11
试试这个DB.js:
insert(user, callback) {
var sql = "INSERT INTO website.users (`first_name`,`last_name`,`username`,`password`) VALUES(?,?,?,?)";
db.query(sql, [user.getFirstName(), user.getLastName(), user.getUsername(), user.getPassword()], callback)
}
我从insert查询中删除了id列,并假设列是id is auto-increment
更新以下部分,请看:
getPassword() {
return this.Password;
}
把这个换成..。
getPassword() {
return this.password;
}
变量名有差异。
发布于 2018-02-04 03:43:29
只需指定要显式插入的字段:
INSERT INTO website.users (first_name,last_name,username,password) VALUES(?,?,?,?);
还删除php代码中的第一个值:
db.query(sql, [user.getFirstName(), user.getLastName(), user.getUsername(), user.getPassword()], callback);
如果DDL没有问题,未指定的字段将自动填充一个值。
这里的代码现在还可以,但是您的数据已经被污染了。所以你现在应该做的是:
ALTER TABLE users AUTO_INCREMENT = 6; --replace it with the right value
修改您的DDL然后一切都会好起来的。
https://stackoverflow.com/questions/48604413
复制相似问题