有没有办法使用PHP和MySQL检索Out参数和结果集。
以下面的场景为例:
CREATE TABLE `test`.`users` (
`users_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`first_name` VARCHAR(100) NOT NULL,
`last_name` VARCHAR(100) NOT NULL,
PRIMARY KEY (`users_id`)
)
DELIMITER $$
DROP PROCEDURE IF EXISTS `test`.`get_user`$$
CREATE PROCEDURE `test`.`get_user`
(
IN userId INT,
OUT firstName VARCHAR(100),
OUT lastName VARCHAR(100)
)
BEGIN
SELECT first_name, last_name
INTO firstName, lastName
FROM users
WHERE users_id = userId;
SELECT Roles。* FROM角色INNER JOIN用户ON users.users_id = Roles.Users WHERE users.users_id = userId; 结束$$ DELIMITER;
鉴于上述情况,存储过程有两组结果。 1. first_name和last_name为Out Parameters 2.使用连接执行Select语句的结果集。
我可以使用以下代码段来获取输出参数
$rs = $mysqli->query( ‘CALL get_user(1, @first, @last)’ );
$rs = $mysqli->query( ‘SELECT @first, @last’ );
while($row = $rs->fetch_object())
{
debug($row);
}
以及下面的片段来检索结果集:
$rs = $mysqli->query( ‘CALL get_user(1, @first, @last)’ );
while($row = $rs->fetch_object())
{
debug($row);
}
有没有办法调用存储过程在单个PHP语句中检索结果?