[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Несколько действий
TMake
Пользуюсь mysql
Пытаюсь выполнить вот такое:
START TRANSACTION;
SET @cache = (SELECT `cache` FROM `com` WHERE `usersId` = 1);
UPDATE `com`
SET `cache` = @cache + 0.5
WHERE `usersId` = 1;
COMMIT;

таблица innoDB
из ошибки понял что через mysql_query(); такое выполнить невозможно, так как mysql_query() обрабатывает по одному запросу

Вопрос: как можно это выполнить?



Спустя 14 минут, 23 секунды (21.12.2011 - 13:30) Guest написал(а):
UPDATE com SET cache=cache+0.5 WHERE usersId=1

Спустя 6 минут, 26 секунд (21.12.2011 - 13:37) TMake написал(а):
Guest спасибо - даже не знал что так работает, но мне нужно понять как пользоваться транзакциями если mysql_query() выполняет лишь один запрос...

типа этого?
mysql_query('START TRANSACTION;');
mysql_query('SET @cache = (SELECT `cache` FROM `com` WHERE `usersId` = 1);');
mysql_query('INSERT `qwe` SET `qqq` = @cache');
mysql_query('COMMIT;');

Спустя 13 минут, 8 секунд (21.12.2011 - 13:50) Guest написал(а):
Через mysql_connect в самом начале получил ссылку на соединение, а дальше все запросы идут через эту ссылку
mysql_query('START TRANSACTION;', ссылка);
mysql_query('SET @cache = (SELECT `cache` FROM `com` WHERE `usersId` = 1);', ссылка);
mysql_query('INSERT `qwe` SET `qqq` = @cache', ссылка);
mysql_query('COMMIT;', ссылка);

Спустя 7 минут, 42 секунды (21.12.2011 - 13:58) TMake написал(а):
Guest все ясно, сенк wink.gif

Спустя 23 часа, 27 минут, 14 секунд (22.12.2011 - 13:25) alexbel2404 написал(а):
я обычно юзаю хранимки, если одно действие нужно выполнить более чем одним запросом

Спустя 12 минут, 16 секунд (22.12.2011 - 13:37) killer8080 написал(а):
stepan
юзай mysqli мультиквери
Быстрый ответ:

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