"Who Dares, Wins"
Всем привет, относительно недавно начал изучать PHP и у меня возник вопрос.
Есть 3 таблицы: news_ru, news_lv, news_en.
И нужно одновременно добавить в каждую новость.
Я знаю, что это можно реализовать 3 запросами, например такими:
$SQL = 'INSERT IGNORE INTO `news_ru` (`header` ,`body`, `author`) VALUES (\''.$_POST['header_ru'].'\', \''.$_POST['body_ru'].'\', \''.$_POST['author'].'\';)';
И вот сам вопрос: А можно ли сделать один запрос сразу для 3-ёх таблиц?


@темы: MySQL, PHP

Комментарии
14.01.2011 в 17:30

After silence that which comes nearest to expressing the inexpressible is music.
По-хорошему нужно сделать одну таблицу с доп полем Language, а не три с одинаковыми полями для каждого языка.

А Вашу проблема решается так : "Insert into ...; insert into...; insert into...;" , т.е. разделить точкой с запятой и в одной транзакции выполнить.
14.01.2011 в 17:35

"Who Dares, Wins"
Kakou ECTb Я как раз одной таблицей и сделал. Просто интересно стало, а есть ли другой способ.
Большое спасибо за ответ :cheek:
14.01.2011 в 17:36

 
В одной транзакции — это
BEGIN;
INSERT IGNORE INTO ...;
INSERT IGNORE INTO ...;
INSERT IGNORE INTO ...;
COMMIT;

А так да, одним вызовом и запросы через точку с запятой; правда, конфигурация сервера может это запрещать.
14.01.2011 в 21:43

Всё будет Кока-Кола.
The-WoLF не забываем фильтровать входные данные.

Расширенная форма

Редактировать

Подписаться на новые комментарии
Получать уведомления о новых комментариях на E-mail