delimiter //
create procedure sp_AttendReportCountWorkouts(OUT cnt INT)
begin select count(*) into cnt from workout_details;
end;
我在MySQL中创建了上面的存储过程,我正在尝试记录记录,但是我无法获得所需的结果。以下是我的PHP页面上的实际代码。
$link = mysqli_connect('localhost', 'root', '', 'icoachswim_sp');
if (!$link)
{
printf("Can't connect to MySQL Server. Errorcode: %s\n", mysqli_connect_error());
exit;
}
if ($count = mysqli_query($link,"call sp_AttendReportCountWorkouts()"))
{
}
答案 0 :(得分:1)
在您的示例中,$ count只是对MySQL结果的引用。 以下是如何处理该引用并获得实际结果的想法。
if($result = mysqli_query($link,"call sp_AttendReportCountWorkouts()"))
{
$row = mysqli_fetch_array($result);
$count = $row[0];
}
更新:这只是一个例子,假设存储过程没有使用out参数:
create procedure sp_AttendReportCountWorkouts()
begin
select count(*) from workout_details;
end;
使用out参数必须是multi_query,就像其他答案节目或两个连续调用一样:
$spResult = mysqli_query($link,"call sp_AttendReportCountWorkouts(@cnt)"));
// process $spResult here before executing next query
$cntResult = mysqli_query($link,"select @cnt"));
答案 1 :(得分:0)
以下是解决输出变量问题的上一个问题:
PHP + MySql + Stored Procedures, how do I get access an "out" value?