不正确的整数值:''对于第1行的列'id'
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不正确的整数值:''对于第1行的列'id'相关的知识,希望对你有一定的参考价值。
我想插入我的mysql数据库。第一列是'id'列,因为它是一个auto_increment字段,我把它留空了。由于某种原因,我无法插入,我收到下面提到的错误。我很感激任何帮助。
尝试插入时出现以下错误:
Incorrect integer value: '' for column 'id' at row 1
我的查询
$insertQuery = "INSERT INTO workorders VALUES('', '$priority', '$requestType', '$purchaseOrder', '$nte', '$jobSiteNumber')";
这可能意味着你的id
是一个AUTO_INCREMENT
整数,你正在尝试发送一个字符串。您应该指定列列表并从INSERT
中省略它。
INSERT INTO workorders (column1, column2) VALUES ($column1, $column2)
要让MySql生成AUTO_INCREMENT
字段的序列号,您有三个选项:
- 指定列表列表并从中忽略您的auto_incremented列,如njk建议的那样。那将是最好的方法。看评论。
- 显式分配NULL
- 明确指定0
...没有为AUTO_INCREMENT列指定值,因此MySQL会自动分配序列号。您还可以显式为列分配NULL或0以生成序列号。
这三个语句将产生相同的结果:
$insertQuery = "INSERT INTO workorders (`priority`, `request_type`) VALUES('$priority', '$requestType', ...)";
$insertQuery = "INSERT INTO workorders VALUES(NULL, '$priority', ...)";
$insertQuery = "INSERT INTO workorders VALUES(0, '$priority', ...";
尝试编辑my.cf并注释原始的sql_mode并添加sql_mode =“”。
vi /etc/mysql/my.cnf
sql_mode =“”
保存并退出...
service mysql restart
这是因为您的数据发送列类型是整数,并且您正在向其发送字符串值。
所以,以下方式对我有用。试试这个。
$insertQuery = "INSERT INTO workorders VALUES (
null,
'$priority',
'$requestType',
'$purchaseOrder',
'$nte',
'$jobSiteNumber'
)";
不要使用'null'
。使用它作为null
没有单引号。
以上是关于不正确的整数值:''对于第1行的列'id'的主要内容,如果未能解决你的问题,请参考以下文章
错误代码:1366。不正确的整数值:第 2 行的列“ReportsTo”的“NULL”
错误 1366 (HY000):不正确的字符串值:第 1 行的列 'comment' 的 '\xF0\x9F\x98\x9C'
PDO PHP - PDOException - 数值超出范围:1264 第 1 行的列“customer_id”的值超出范围
不正确的字符串值:第 1 行的列 'VARIABLE_VALUE' 的 '\xD6\xD0\xB9\xFA\xB1\xEA...' [重复]