使用PHP和MySQL输出参数和结果集

时间:2012-03-28 21:50:51

标签: php mysql stored-procedures mysqli

有没有办法使用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语句中检索结果?

0 个答案:

没有答案