Express.js ER_TRUNCATED_WRONG_VALUE_FOR_FIELD:整数值不正确:第 1 行的第 'id' 列为“”
Express.js ER_TRUNCATED_WRONG_VALUE_FOR_FIELD: Incorrect integer value: '' for column 'id' at row 1
在我的 main.js 文件中,字符串是“hello,0,0,0”(如果您在数组中读取它,则在第二个位置为空)它需要能够将 NULL 传递到数据库中。
仅供参考:如果第二个位置是 0 且不为空,它将起作用
我正在尝试将字符串“,”拆分为 var,如下所示。
var Val = req.body.string.split(",");
var one = Val[0];
var two = Val[1];
var three = Val[2];
var four = Val[3];
var five = Val[4];
let sqlquery = "INSERT INTO TESTING (one, two, three, four, five) VALUES (?,?,?,?,?)";
let newrecord = [one, two, three, four, five];
db.query(sqlquery, newrecord, (err, result) => {
if (err) {
return console.error(err.message);
} else
res.send("Added in database");
我收到了这个错误
ER_TRUNCATED_WRONG_VALUE_FOR_FIELD:不正确的整数值:第 1 行第 'three' 列的“”
我创建的 table:CREATE TABLE TESTING(一个 VARCHAR(50),两个 BOOLEAN,三个 INT(4),四个 INT(4),五个 BOOLEAN ,主键(名称));
字段全部为 NULL
上面 table 中没有自动递增,还有另一个 table 我使用完全相同的方式创建但具有自动递增 id 但仍然抛出同样的错误
因为你知道参数 three
是一个数字,你可以写
var three = Val[2] || null;
我假设你稍后会执行类似
的命令
db.query(sqlquery, [one, two, three, four, five]);
然后,如果 Val[2] = "0"
,您将得到 three = "0"
,并且此字符串值被数据库接受为数字 0。
但是 Val[2] = ""
是一个 falsy 值,因此您得到 three = null
,这有望被数据库接受为 NULL 值。
在我的 main.js 文件中,字符串是“hello,0,0,0”(如果您在数组中读取它,则在第二个位置为空)它需要能够将 NULL 传递到数据库中。
仅供参考:如果第二个位置是 0 且不为空,它将起作用
我正在尝试将字符串“,”拆分为 var,如下所示。
var Val = req.body.string.split(",");
var one = Val[0];
var two = Val[1];
var three = Val[2];
var four = Val[3];
var five = Val[4];
let sqlquery = "INSERT INTO TESTING (one, two, three, four, five) VALUES (?,?,?,?,?)";
let newrecord = [one, two, three, four, five];
db.query(sqlquery, newrecord, (err, result) => {
if (err) {
return console.error(err.message);
} else
res.send("Added in database");
我收到了这个错误
ER_TRUNCATED_WRONG_VALUE_FOR_FIELD:不正确的整数值:第 1 行第 'three' 列的“”
我创建的 table:CREATE TABLE TESTING(一个 VARCHAR(50),两个 BOOLEAN,三个 INT(4),四个 INT(4),五个 BOOLEAN ,主键(名称));
字段全部为 NULL
上面 table 中没有自动递增,还有另一个 table 我使用完全相同的方式创建但具有自动递增 id 但仍然抛出同样的错误
因为你知道参数 three
是一个数字,你可以写
var three = Val[2] || null;
我假设你稍后会执行类似
的命令db.query(sqlquery, [one, two, three, four, five]);
然后,如果 Val[2] = "0"
,您将得到 three = "0"
,并且此字符串值被数据库接受为数字 0。
但是 Val[2] = ""
是一个 falsy 值,因此您得到 three = null
,这有望被数据库接受为 NULL 值。