环境: Linux, php7.1, Mysql(MariaDB10)数据库中有一个存储过程:
CREATE DEFINER=`root`@`%` PROCEDURE `proc_get_player`(INOUT `user_id` int, INOUT `page_offset` int, IN `page_display` int)
BEGIN
set page_offset = 4;
select id, name from t_player;
END调用过程的PHP代码:
mysqli_query($con, "set @user_id = 1");
mysqli_query($con, "set @page_offset = 1");
mysqli_query($con, "set @page_display = 5");
$result = mysqli_query($con, "CALL proc_get_player(@user_id, @page_offset, @page_display);"); while($row = mysqli_fetch_assoc($result))
{
} ##这一行就错了,无法获取 存储过程 的返回值
$para = mysqli_query($con, "select @user_id, @page_offset ;"); 我的想法就是调用数据库的存储过程,既获取“结果集”,又获取“返回值”
CREATE DEFINER=`root`@`%` PROCEDURE `proc_get_player`(INOUT `user_id` int, INOUT `page_offset` int, IN `page_display` int)
BEGIN
set page_offset = 4;
select id, name from t_player;
END调用过程的PHP代码:
mysqli_query($con, "set @user_id = 1");
mysqli_query($con, "set @page_offset = 1");
mysqli_query($con, "set @page_display = 5");
$result = mysqli_query($con, "CALL proc_get_player(@user_id, @page_offset, @page_display);"); while($row = mysqli_fetch_assoc($result))
{
} ##这一行就错了,无法获取 存储过程 的返回值
$para = mysqli_query($con, "select @user_id, @page_offset ;"); 我的想法就是调用数据库的存储过程,既获取“结果集”,又获取“返回值”
面向对象风格 (method):
public bool mysqli_stmt::next_result ( void )过程化风格:
bool mysqli_stmt_next_result ( mysql_stmt $stmt )调用存储过程时会返回多个结果集
并且这些返回的结果集都必须读空,否则就不能再次使用查询