如何使用mysqli_multi_query()插入两行或更多行而没有插入错误?

时间:2014-12-14 08:28:29

标签: php mysqli mysqli-multi-query

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

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

我该怎么做?

我的查询是

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

重复密钥更新survey ='1'; 从_survey_db删除user ='anu';

2 个答案:

答案 0 :(得分:2)

使用交易。

MySQLi::begin_transaction();

// Make your SQL queries here...

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

答案 1 :(得分:0)

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

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