如何设置标志client\u multi\u语句以允许调用多个存储过程?

vxbzzdmp  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(295)

如何设置用于在单个存储过程中调用多个存储过程的标志client\u multi\u语句?我有30个存储过程,我想执行一个按钮点击处理用户数据。似乎创建一个过程来执行其他30个过程是最简单的,但这会触发语法错误。在一个存储过程中执行一个存储过程效果很好,再添加一个存储过程就会产生错误。我的研究表明,通过设置client\u multi\u statements标志,我可以执行多个过程,但是很少有文档说明如何在joomla这样的cms中执行。我正在使用joomla3/mysql 5.7/mariadb。我必须修改核心代码吗?或者有没有办法在外部设置标志?

nxowjjhe

nxowjjhe1#

我不知道如何在joomla中启用client\u multi\u语句。通过使用这段代码将查询拆分为服务器允许处理的查询数组,我能够解决问题。

JDatabaseDriver::splitSql($query);

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

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

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

干杯

相关问题