Есть ли способ обновить две таблицы в одном запросе? Ниже приведен пример моего кода. Как я могу поместить эти два запроса на обновление в одном? Заранее спасибо!
<?php // DATABASE UPDATE if (isset($_POST['submit']) or isset($_GET['submit'])){ // 1st QUERY $db =& JFactory::getDBO(); $query_1 = "UPDATE table_1 SET name = '".$_POST["name"]."', surename = '".$_POST["surename"]."' WHERE id=1"; $db->setQuery($query_1); $db->query(); // 2nd QUERY $db =& JFactory::getDBO(); $query_2 = "UPDATE table_2 SET team_id = '".$_POST["team_id"]."', SET team_name = '".$_POST["team_name"]."' "; $db->setQuery($query_2); $db->query(); } ?>
MySQL фактически позволяет обновлять несколько таблиц в одном запросе (хотя часто бывает, что ваше приложение может делать по одному).
UPDATE table_1, table_2 SET table_1.field = <some value>, table_2.field = <some value> WHERE table_1.field2 = table_2.field_2 AND table_1.field_3 = <some other value>
См .: http://dev.mysql.com/doc/refman/5.1/en/update.html.
Как заявили другие люди, вы должны посмотреть на использование подготовленных заявлений.
Используйте транзакцию, поддерживает только движок InnoDB.
mysql> начать транзакцию; Запрос ОК, 0 строк, затронутых (0.00 сек)
{Первая вставка здесь}
{Вторая вставка здесь}
mysql> commit; Запрос ОК, 0 строк, затронутых (0.00 сек)
Обратите внимание, что вам нужно написать commit, потому что если вы этого не сделаете, не запустите его в базу данных.