PDO插入最大id + 1而不是auto_increment

时间:2018-09-06 12:38:20

标签: mysql pdo insert auto-increment

我不想使用mysql的自动增量功能,但是我想获取最大id + 1作为ID插入下一个数据。

我尝试做为How to get auto increment id by PDO before execute 但没有运气。

$sql = "INSERT INTO checklist ((SELECT MAX(checklist_id)+1), checklist_name ) VALUES (NULL, :checklist_name)";

$pdo_statement = $pdo_conn->prepare( $sql );

$result = $pdo_statement->execute ((array(':maxid'=>NULL,':checklist_name'=>$_POST['checklist_name']));

您能帮我它应该是什么代码吗?

1 个答案:

答案 0 :(得分:0)

编辑:如以上评论员之一所指出;不建议您在MySQL数据库中没有PRIMARY Key

您的SQL查询错误。您需要分别具有列和值。

  

$ sql =“将清单插入((SELECT MAX(checklist_id)+1),checklist_name)VALUES(NULL,:checklist_name)””;

要使您的INSERT语句正确无误,请查看documentation

INSERT INTO table (column, column, etc.) VALUES (value, value, etc.)

因此,要使您的陈述正确无误,您必须切换一些变量

INSERT INTO checklist (checklist_id, checklist_name) VALUES ((SELECT MAX(checklist_id)+1 FROM checklist), :checklist_name)

带有绑定值的数组看起来像这样

array(':checklist_name' => $_POST['checklist_name'])

如果您对任何SQL语法有疑问,可以查看documentationw3schools tutorials