具有multi_query的重复记录返回1,但未插入

时间:2018-05-11 20:32:00

标签: php database mysqli mysqli-multi-query

我正在尝试复制记录。该表有一个自动增量键。 一次性访问DB,所以我使用multi_query

它返回1,但记录未插入DB。 根据我的阅读,它应该在成功时返回TRUE,或者在失败时返回FALSE。

我的查询下面是否正确?

$sql = "CREATE TEMPORARY TABLE tmp select * from TESTY where TESTY_ID = 88;
INSERT INTO TESTY SELECT MAX(TESTY_ID)+1 FROM tmp where TESTY_ID = 88;";

$mysqli->multi_query($sql);

1 个答案:

答案 0 :(得分:0)

来自http://php.net/manual/en/mysqli.multi-query.php

Returns FALSE if the first statement failed. To retrieve subsequent errors from other statements you have to call mysqli_next_result() first.

所以你的第二个陈述就是问题。也就是说,我认为你不能SELECT MAX,增加值并在一个语句中插入INSERT。

编辑:如果字段已经是auto_increment,为什么还要在INSERT上明确设置ID?