[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Несколько последовательных запросов
Zemelea
Добрый день, подскажите кто знает.
К примеру в PHP-скрипте есть 2 последовательных запроса к MySQL:

$db->query("Запрос1");
$db->query("Запрос 2");

Вопрос такой. Может случиться так, что после нормального выполнения 1ого запроса, 2ой не сработает. И как организовать это всё так, чтобы на все 100% быть уверенным, что если не выполниться хотя-бы один из запросов, то не должен выполняться ни один другой.
Или может есть возможность объединить как-то DELETE и UPDATE в один запрос?



Спустя 6 минут, 13 секунд (19.07.2011 - 15:44) waldicom написал(а):
Смотреть в сторону транзакций. А так, конечно может случиться, что скрипт прервется на любой стадии.

Спустя 4 минуты, 19 секунд (19.07.2011 - 15:48) Zemelea написал(а):
Цитата (waldicom @ 19.07.2011 - 12:44)
Смотреть в сторону транзакций. А так, конечно может случиться, что скрипт прервется на любой стадии.

Спасибо, уже понял что это такое, сейчас буду вникать как это организовать)

Спустя 30 минут, 34 секунды (19.07.2011 - 16:19) Zemelea написал(а):
Перевёл тип таблицы в InnoDB. Но не совсем понимаю как настроить SET AUTOCOMMIT=0. Это делается запросом? Или устанавливается в настройках MySQL?

Спустя 9 минут, 54 секунды (19.07.2011 - 16:28) waldicom написал(а):
SET AUTOCOMMIT=0

это обычная команда, которая может быть выполнена с помощью mysql_query().
Что-то в сторону

mysql_query('SET AUTOCOMMIT=0');
mysql_query('START TRANSACTION');
mysql_query('DELETE FROM table WHERE id=1');
mysql_query('ROLLBACK');
mysql_query('SET AUTOCOMMIT=1');


Спустя 2 минуты, 6 секунд (19.07.2011 - 16:31) waldicom написал(а):
Или написать хранимую процедуру

Спустя 15 минут, 58 секунд (19.07.2011 - 16:47) Zemelea написал(а):
Спасибо большое) Разобрался, сделал с помощью BEGIN/COMMIT, потестил, вроде работает как надо. Про хранимые процедуры тоже почитаю для общего развития)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.