PHP / MySQL - „BEGIN… COMMIT” nie działa

Szukałem sposobu na wstawienie danych do dwóch tabel bazy danych w jednym zapytaniu w taki sposób, że jeśli jedno nie powiedzie się, nie zostanie zapisane (nie chcę osieroconych danych). Natknąłem się na pytanie przepełnienia stosu, które pokazało mi, jak użyć BEGIN ... COMMIT, aby to osiągnąć, ale po prostu nie działa.

Oto zapytanie, które ustawiłem:

$query = "BEGIN;
            INSERT INTO content_subpages (title, url_referer) VALUES ('$pagetitle','$url_referer');
            INSERT INTO ccm_main_menu (sub_item, sub_item_link,sub_item_sort_order) VALUES ('$pagetitle','$url_referer','$newsort');
            COMMIT;";
mysql_query($query) or die (mysql_error());

Otrzymuję następujący błąd:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO content_subpages (title, url_referer) VALUES ('TESTING','testing'); ' at line 2

To jest mój pierwszy raz, gdy używam BEGIN ... COMMIT, więc rozsądne jest, że robię coś złego, ale zastosowałem składnię przykładu SQL Fiddle podanego przez wybraną odpowiedź na pytanie Przepełnienie stosu, o którym wspomniałem (http: // stackoverflow.com/questions/12649706/mysql-insert-into-multiple-tables-in-same-query-with-begincommit), ale nadal nie będzie działać.

Gdybym mógł łatwo uzyskać wielokrotny wynik INSERT „wszystko albo nic” bez BEGIN ... COMMIT, byłoby to akceptowalne rozwiązanie.

Z góry dziękuję

questionAnswers(4)

yourAnswerToTheQuestion