【问题标题】:How to insert two or more rows into table using mysqli_multi_query() with out insertion errors?如何使用 mysqli_multi_query() 将两行或多行插入表中而不会出现插入错误?
【发布时间】:2014-12-14 08:28:29
【问题描述】:

我需要向多个表中插入行,并且我需要插入的行数不固定。 我正在使用 mysqli_multi_query() 一步完成所有插入查询。

我需要成功执行所有查询,否则如果其中一个查询失败,则恢复到原始表。

我该怎么做?

我的查询是

insert into `_survey_user_map` (`user`,`survey`) values('anu','1') 

关于重复键更新survey='1'; 从_survey_db 删除user='anu';

【问题讨论】:

  • 可以分享一下你目前拥有的相关代码吗?

标签: php mysqli mysqli-multi-query


【解决方案1】:

使用事务。

MySQLi::begin_transaction();

// Make your SQL queries here...

if (NO ERROR OCCURRED) {
    MySQLi::commit();
} else {
    MySQLi::rollback();
}

【讨论】:

    【解决方案2】:

    不要运行多个查询,每个查询INSERTs 一行,而是编写一个插入所有行的INSERT 查询。如果至少有一行无法插入,它将失败并且不会插入任何内容。

    INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多