如何设置标志CLIENT_MULTI_STATEMENTS以在单个存储过程中调用多个存储过程?我有30个存储过程,我想通过单击按钮来执行以处理用户数据。似乎创建一个过程来执行另外30个过程是最简单的,但这会引发语法错误。在存储过程中执行一个存储过程可以正常工作,再添加一个存储过程会产生错误。我的研究表明,通过设置CLIENT_MULTI_STATEMENTS标志可以执行多个过程,但是很少有文档介绍如何在CMS之类的Joomla中执行此操作。我正在使用Joomla 3 / mysql 5.7 / mariadb。我必须修改核心代码吗?还是有办法在外部设置标志?
答案 0 :(得分:0)
我无法弄清楚如何在Joomla中启用CLIENT_MULTI_STATEMENTS。通过使用以下代码,我可以将查询拆分为服务器允许处理的查询数组,从而解决了我的问题。
JDatabaseDriver::splitSql($query);
$query = "CALL ...;CALL...;...;";
$queries = $db->splitSql($query);
foreach( $queries AS $sql )
{
$db->setQuery($sql) ->execute();
$db->query();
}
欢呼