OutParameter и Resultset с использованием PHP и MySQL - PullRequest
0 голосов
/ 29 марта 2012

Есть ли способ получить параметр Out и набор результатов, используя PHP и MySQL.

Возьмем, к примеру, следующий сценарий:

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;

ВЫБРАТЬ роли.users ON users.users_id = Roles.Users WHERE users.users_id = userId;END $$ DELIMITER;

Учитывая вышеописанный сценарий, хранимая процедура имеет 2 набора результатов.1. first_name и last_name как параметры Out 2. результирующий набор для выполнения оператора Select с объединением.

Я могу использовать приведенный ниже фрагмент кода для получения параметров out

$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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...