PHP / MySQL - "BEGIN ... COMMIT" no funciona
Estaba buscando una forma de insertar datos en dos tablas de base de datos en una sola consulta de tal manera que si una fallaba, ninguna de ellas se guardaba (no quiero datos huérfanos). Encontré una pregunta de desbordamiento de pila que me mostró cómo usar BEGIN ... COMMIT para lograr esto, pero simplemente no está funcionando.
Aquí está la consulta que he configurado:
$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());
Obtuve el siguiente error: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
Esta es la primera vez que uso BEGIN ... COMMIT, por lo que es razonable que esté haciendo algo mal, pero seguí la sintaxis del ejemplo de Fiddle de SQL dada por la respuesta seleccionada a la pregunta de Desbordamiento de pila que mencioné (http: // stackoverflow.com/questions/12649706/mysql-insert-into-multiple-tables-in-same-query-with-begincommit), pero todavía no funciona.
Si puedo lograr fácilmente el resultado INSERT múltiple de "todo o nada" sin BEGIN ... COMMIT, sería una solución aceptable.
Gracias por adelantado