Увидел сегодня красивое решение проверки выполнения мультизапроса в mysqli.
Если кто не в курсе, то можно сформировать в одну строку кучу запросов, разделяемых точкой с запятой, а потом отдать это на выполнение. Так вот проверять ошибки можно разными способами, а можно просто в конец добавить некий абстрактный SELECT 'complete'. Это подходит для запросов типа INSERT, DELETE, UPDATE.
Eще, у меня в примере указан не прямой вызов multi_query, а обертка для запросов, думаю что это и зачем вам объяснять не нужно.
if ( $DB()->multi("
UPDATE someshit SET bla=bla-1 WHERE id='%d';
DELETE FROM someshit WHERE category='%d';
DELETE FROM someshit WHERE id='%d';
SELECT 'complete';",
$id, $category, $id) != "complete" )
{
self::$resultCode = self::DB_ERROR;
return false;
}
self::$resultCode = self::SUCCESS;