我需要向多个表中插入行,并且我需要插入的行数不固定。我正在使用 mysqli_multi_query() 一步完成所有插入查询。
我需要成功执行所有查询,否则如果其中一个查询失败恢复到原始表。
我怎样才能做到这一点 ?
我的查询是
insert into `_survey_user_map` (`user`,`survey`) values('anu','1')
重复键更新survey
='1'; _survey_db
从哪里删除user
='anu';
我需要向多个表中插入行,并且我需要插入的行数不固定。我正在使用 mysqli_multi_query() 一步完成所有插入查询。
我需要成功执行所有查询,否则如果其中一个查询失败恢复到原始表。
我怎样才能做到这一点 ?
我的查询是
insert into `_survey_user_map` (`user`,`survey`) values('anu','1')
重复键更新survey
='1'; _survey_db
从哪里删除user
='anu';
使用事务。
MySQLi::begin_transaction();
// Make your SQL queries here...
if (NO ERROR OCCURRED) {
MySQLi::commit();
} else {
MySQLi::rollback();
}
与其运行多个查询,INSERT
每个查询只有一行,不如编写一个INSERT
插入所有行的查询。如果至少有一行无法插入,它将失败并且不会插入任何内容。
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);