我得到了这个例外
Uncaught exception 'PDOException' with message 'SQLSTATE[21S01]:
Insert value list does not match column list: 1136 Column count doesn't match
value count at row 1
使用此代码:
$stmt = $conn->prepare('INSERT INTO project VALUES(:category, :title, :name)');
$stmt->execute(array(
':category' => $_POST['category'],
':title' => $_POST['title'],
':name' => $_POST['name']
));
错误消息是什么意思?
答案 0 :(得分:7)
在查询中,指定要填充的列,例如:
$stmt = $conn->prepare('INSERT INTO project (category, title, name) VALUES(:category, :title, :name)');
如果不以这种方式指定列,则必须为表中的所有列包含一个值,这就是您收到错误的原因 - 因为表中还有其他列而您没有明确地为它们指定了一个值。
最好指定列,因为如果添加了任何列或将来更改了顺序,除非指定了列列表,否则查询将会中断。
答案 1 :(得分:3)
INSERT INTO project(category_field,title_field,name_field) VALUES(:category, :title, :name)
category_field,title_field,name_field是project
表
您必须指定要在哪个列中插入数据。
注意:当然如果不需要其他字段值(未设置为NOT NULL)
答案 2 :(得分:2)
您没有列出要插入的列。
即
INSERT INTO project (category, title, name) VALUES (:category, :title, :name)