2014-12-14 4 views
0

Мне нужно вставить строки в несколько таблиц, а количество строк, которые мне нужно вставить, не исправлено. Я использую mysqli_multi_query() для выполнения всех моих запросов вставки за один шаг.Как вставить две или несколько строк в таблицу с помощью mysqli_multi_query() без ошибок ввода?

Мне нужно выполнить все мои запросы успешно, или если один из запросов не вернулся к исходной таблице.

Как я могу это сделать?

Мой запрос

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

на дублирующих ключевых обновлений survey = '1'; удалить из _survey_db где user = 'anu';

+0

Можете ли вы поделиться соответствующим кодом, который у вас есть в настоящее время? – honk

ответ

2

Использование транзакций.

MySQLi::begin_transaction(); 

// Make your SQL queries here... 

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

Вместо запуска нескольких запросов, которые INSERT сек на одну строку каждый, составляющие одну INSERT запрос, который вставляет все строки. Он не сработает и ничего не вставит, если хотя бы одна из строк не может быть вставлена.

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