0

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

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

我怎样才能做到这一点 ?

我的查询是

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

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

4

2 回答 2

2

使用事务。

MySQLi::begin_transaction();

// Make your SQL queries here...

if (NO ERROR OCCURRED) {
    MySQLi::commit();
} else {
    MySQLi::rollback();
}
于 2014-12-14T08:36:21.090 回答
0

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

INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
于 2014-12-14T09:36:31.753 回答