我有一个 Mysql存储过程,他从两个不同的表返回两个结果集。问题出在Laravel 7中,因为我只收到第一个结果集,而不必更改查询顺序。我检查了Mysql是否正确返回了数据。
这是Mysql的输出:
这是我通过ddd($genders);
获得的输出
这是我的控制器的功能
public function getGenders()
{
$sp_call = "CALL Genders_GET(?,@Result,@UserMessage,@LogMessage)";
$user_id = 1;
$params = array($user_id);
$genders = DB::select($sp_call, $params);
ddd($genders);
}
这是我的存储过程:
CREATE DEFINER=`root`@`localhost` PROCEDURE `Genders_GET`(
IN UserID INT,
OUT Result INT,
OUT UserMessage VARCHAR(100),
OUT LogMessage VARCHAR(1000)
)
BEGIN
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
GET DIAGNOSTICS CONDITION 1 LogMessage = MESSAGE_TEXT;
SET UserMessage = 'Su solicitud no se pudo completar, intenta mas tarde.';
SET Result = -1;
END;
SELECT RolID, RolName, `Status`
FROM census.Roles;
SELECT GenderID, GenderName, `Status`
FROM census.Genders;
SET Result = 1;
SET UserMessage = 'Operación realizada exitosamente';
SET LogMessage = '';
END
我尝试了这两种解决方案,但在Laravel 7中不起作用: how to fetch multiple result set from a mysql stored procedure in laravel