Есть ли способ получить параметр 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?