Двe sql команды за один запрос


1man1
889

Здравствуйте, есть две sql команды, скажите пожалуйста как их можно объединить и выполнить одним запросом? Спасибо!

INSERT INTO dle_post (date, autor, short_story, full_story, xfields, title, descr, keywords, category, alt_name, allow_comm, approve, allow_main, fixed, allow_br, symbol, tags, metatitle) values ('2020-04-09 12:12:36', 'beget', '', '<p><span>*zdes polnaya novost*</span></p>', 'prod|*zdes tovary*||schema_telephone|+7telefon||schema_address|*zdes Schema.Org:*', '*zdes zagolovok*', '*zdes Description*', 'polnaya, novost', '11', 'zdes-new-chpu', '0', '1', '0', '0', '0', '', '', '*zdes Title*')


INSERT INTO dle_post_extras (news_id, allow_rate, votes, disable_index, access, user_id, disable_search, need_pass) VALUES('1322', '0', '0', '0', '', '19', '0', '0')


Aisamiery

Какую цель преследуете?

Два инсерта в разные таблицы не выполнить одним инсертом, по крайней мере я никогда не встречал и не интересовался.

А передать 2 запроса в БД одной командой можно поставив просто ; (точку с запятой) между ними.

например

$db->query(«INSERT INTO one … ; INSERT INTO two»);

Если вы хотите чтобы выполнились или оба или не один, то для этого есть механизм транзакций.


Sitealert

Aisamiery:
А передать 2 запроса в БД одной командой можно

А ты уверен? А ты проверил? (С)


1man1

Aisamiery:
Какую цель преследуете?

Два инсерта в разные таблицы не выполнить одним инсертом, по крайней мере я никогда не встречал и не интересовался.

А передать 2 запроса в БД одной командой можно поставив просто ; (точку с запятой) между ними.

например

Если вы хотите чтобы выполнились или оба или не один, то для этого есть механизм транзакций.

Все работает, спасибо!


Sitealert

1man1:
Все работает, спасибо!

Только это не будет «одним запросом».


1man1

Sitealert:
Только это не будет «одним запросом».

я вставляю в одно окно и у меня выполняются два запроса.


Sitealert

1man1:
я вставляю в одно окно и у меня выполняются два запроса.

Именно. Два запроса.


oleg3d

Sitealert:
Только это не будет «одним запросом».

Во зануда, работает-же!


ivan-lev

oleg3d:
Во зануда, работает-же!

В первом посте корректная формулировка примерно так звучит:

«Можно ли выполнить два запроса одним запросом» 😂

1man1:
я вставляю в одно окно

А это уже совсем про другое..

Aisamiery:
А передать 2 запроса в БД одной командой

Cмотря куда передать.. 😂

Что касается программного.. Если драйвер поддерживает соответствующую опцию (к примеру, «multy query» в mysqli https://www.php.net/manual/en/mysqli.multi-query.php или PDO), то так делать можно и непосредственно в PHP используя соответствующую функцию.. (раз уж мы в «веб-строительстве)

Ну, и учесть особенности в отлове ошибок.. и в выполнении запросов при появлении ошибки.

oleg3d:
Во зануда, работает-же!

Так радуйтесь )) Sitealert объясняет, где нестыковка..

— Машина не заводилась.. в движке проблема была..

— Так не в движке же.. в стартере..

— Да какая разница, едет же.. 😂


oleg3d

во попустили за то что вписался за бедного крестианина

———- Добавлено 11.04.2020 в 09:50 ———-

— Да какая разница, едет же.

……….


Sitealert

oleg3d:
работает-же!

Это смотря по тому, что и как должно работать. Как отметил ivan-lev, для мультизапроса предусмотрена специальная функция, а тот вариант, который написал Aisamiery, работать не должен. Метод query поддерживает только один запрос. Про какое-то «окно», в которое ТС что-то вставляет, я вообще не понял.

И вообще большой вопрос, нафига всё это нужно для ТС. Потому что использование мультизапроса – это песня с припевом и плавание среди подводных камней.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *