Вопрос по mysql

Печать RSS
48

Автор
Пацак
0
Вообщем в одном кэйсе надо сделать несколько запросов, но без говнокода как то не получается )) тобишь вот такой велосипед можна оформить попроще?

<?
case 'blabla':
if (mysql_query ("DELETE FROM `garem` WHERE `usid`='$nk'") &&
mysql_query ("INSERT INTO `garem` SET `usid`='$nk', `id`='$id'") &&
mysql_query ("UPDATE `users` SET money=`money`-'$cen2' WHERE `id`='$id'") &&
mysql_query ("UPDATE `users` SET money=`money`+'$cen2' WHERE `id`='".$prov['id']."'")) {
echo 'Успешно';
} else {
echo 'Ошибка!<br/>';
}
break;
Изменил: Дмитрий (29.07.2010 / 23:10)

Господин ПЖ
0
innoDB и транзакции

Дух
0
Вощето желательно так. Думаю понятно зачем.
<?
case 'blabla':
if(!mysql_query ("DELETE FROM `garem` WHERE `usid`='$nk'") echo mysql_error();
elseif(!mysql_query ("INSERT INTO `garem` SET `usid`='$nk', `id`='$id'") echo mysql_error();
elseif(!mysql_query ("UPDATE `users` SET money=`money`-'$cen2' WHERE `id`='$id'") echo mysql_error();
elseif(!mysql_query ("UPDATE `users` SET money=`money`+'$cen2' WHERE `id`='".$prov['id']."'")) echo mysql_error();
else{
echo 'Успешно';
}
break;

Господин ПЖ
0
3. TLENSi, ну и что на последнем update будет ошибка или сбой и получится так что у одного снимут а второй ничего не получит
вообще для важных операций с деньгами нужно использовать тип таблиц InnoDB
О

Землянин
0
Да, лучше InnoDB, тогда можно производить откат на уровне MySQL, если же используется MyISAM, то откат предусмотреть на уровне php — каждый запрос выводить в условие
Автор
Пацак
0
Хм что такое InnoDB ?
A

Оранжевые штаны
0
6. Mr-General, это подсистема MySQL, которая реже используется, чаще всего ты можешь увидеть MyISAM
Автор
Пацак
0
ну MyISAM я видел, а InnoDB впервые слышу
О

Землянин
0
Это один из предложенных типов таблиц для хранения данных. На смену MyISAM пришел новый тип хранения данных - Maria, в котром поддершка транзакций — есть
Автор
Пацак
0
О_О неасилил ( придецо юзать старый движек майисам гг
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск