【问题标题】:Duplicate Record with multi_query returns 1, but is not inserting具有 multi_query 的重复记录返回 1,但未插入
【发布时间】:2018-10-22 07:35:30
【问题描述】:

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

它返回 1 但记录没有插入到数据库中。 根据我的阅读,它应该在成功时返回 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);

【问题讨论】:

    标签: php database mysqli mysqli-multi-query


    【解决方案1】:

    来自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.

    所以你的第二个陈述就是问题所在。也就是说,我认为您不能在一个语句中选择 MAX、递增值和插入全部。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-25
      • 2011-04-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-26
      • 2012-10-21
      • 1970-01-01
      • 2019-12-29
      相关资源
      最近更新 更多