результат выполнения хранимой процедуры

svr

Guest
результат выполнения хранимой процедуры

Господа, можно ли заставить хранимую процедуру в MySQL возвратить больше, чем одну строку результата?
 

svr

Guest
Re: результат выполнения хранимой процедуры

хм. а как? можно пример?
 

camka

не самка
Что и как делаешь ты? Какой результат ожидаешь и какой получаешь в итоге?
 

svr

Guest
Я хочу, ятобы ХП вернула несколько рядов данных, как обычный селект. В мануале написано, что only a single row may be retrieved. Если вставить в процедуру обычный селект, который выбирает несколько рядов, то процедура завершается ошибкой "Result consisted of more than one row". На http://dev.mysql.com/doc/mysql/en/Stored_Procedures.html первый комметарий вроде бы как раз о том, что мне нужно, но когда я пытаюсь выполнить эту процедуру, сервер валится.
Вот я и хочу увидеть работающую процедуру, которая возвращала бы "многострочный" результат.
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: svr
Вот я и хочу увидеть работающую процедуру, которая возвращала бы "многострочный" результат.
Поставь сервер, у которого хранимые процедуры не в настолько глубокой альфе.
 

svr

Guest
Все оказалось просто. Достаточно в процедуре указать select без into и процедура выводит результат селекта.

-~{}~ 16.12.04 14:14:

не понос так золотуха.
вот процедура:
CREATE PROCEDURE checkSubsEmail(IN eml VARCHAR(75))
BEGIN
(SELECT email FROM users WHERE email=eml)
UNION
(SELECT email FROM regUsers WHERE email=eml);
END
вызывается CALL checkSubsEmail('[email protected]');
из клиента mysql работает отлично, однако при вызове из php, например,
mysqli_query($link, "CALL checkSubsEmail('[email protected]');"); сервер возвращает ошибку "SELECT in a stored procedure must have INTO" (http://dev.mysql.com/doc/mysql/en/SELECT_INTO_Statement.html). Есть способ из PHP получить такой же результат, как и в клиенте mysql?
 
Сверху