Как установить флаг CLIENT_MULTI_STATEMENTS, чтобы разрешить вызов нескольких хранимых процедур? - PullRequest
0 голосов
/ 13 сентября 2018

Как мне установить флаг CLIENT_MULTI_STATEMENTS для вызова нескольких хранимых процедур в одной хранимой процедуре?У меня есть 30 хранимых процедур, которые я хотел бы выполнить одним нажатием кнопки для обработки пользовательских данных.Кажется, что создание одной процедуры для выполнения 30 других будет проще, но это вызывает синтаксическую ошибку.Выполнение одной хранимой процедуры в хранимой процедуре работает просто отлично, добавление еще одной создает ошибку.Мое исследование показало, установив флаг CLIENT_MULTI_STATEMENTS, что я могу выполнить несколько процедур, но документации о том, как это сделать в CMS, такой как Joomla, немного.Я работаю с Joomla 3 / MySQL 5.7 / Мариадб.Должен ли я изменить основной код?Или есть способ установить флаг извне?

1 Ответ

0 голосов
/ 26 сентября 2018

Мне не удалось выяснить, как включить CLIENT_MULTI_STATEMENTS в Joomla.Я смог решить свою проблему, используя этот фрагмент кода, чтобы разделить мои запросы на массив запросов, которые сервер будет обрабатывать.

JDatabaseDriver::splitSql($query);

$query =  "CALL ...;CALL...;...;";

$queries = $db->splitSql($query);

foreach( $queries AS $sql ) 
{
$db->setQuery($sql) ->execute();
$db->query();
}

Cheers

...