Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > Возвращение результата из MYSQL функции


Автор: TNT86 20.10.2007, 17:15
Кто-нибудь в курсе можно ли из MYSQL функции вернуть много кортежей? То есть, чтобы возвращался не один INT, а скажем результат выполнения целого запроса?

Автор: corpsehunter 23.10.2007, 00:10
Если правильно понял, то тебе надо почти то же, что только что написал в соседнем топике:
Код

$res = mysql_query("бла-бла-бла"); //запрос
while ($row = mysql_fetch_object($res)) { //перебираем результаты запроса
     $row->имя_поля //обращаемся так
}

Автор: sTa1kEr 23.10.2007, 09:11
Цитата(TNT86 @  20.10.2007,  18:15 Найти цитируемый пост)
Кто-нибудь в курсе можно ли из MYSQL функции вернуть много кортежей?

Нельзя. MySQL функции возвращает скалярные величины. Т.е. числа, строки, дату итп. Но можно, к примеру, составить и вернуть строку с числами разделенными запятыми (хотя я подозреваю, что вам такой вариант не подойдет).
Либо используйте хранимые процедуры.

Автор: TNT86 24.10.2007, 22:31
Хм... я думал что хранимые процедуры это те же функции, только без возвращения параметров...

Автор: sTa1kEr 24.10.2007, 22:55
Цитата(TNT86 @  24.10.2007,  23:31 Найти цитируемый пост)
Хм... я думал что хранимые процедуры это те же функции, только без возвращения параметров... 

Нет, хранимые процедуры и функции - это совершенно разные вещи. Функции в MySQL аналогичны функциям в PHP, т.е. они принимают параметр(ы), производят обработку и возвращают значения определенного типа.
Хранимки же по сути являются неким скриптом БД, т.е. выполняют некие операции над БД и результатом их работы являются результаты выполнения этих операций над БД. Т.е. если в хранимке был выполнен SELECT, то результатом этой хранимки будет являтся тот-же результат, как если бы мы просто выполнили этот SELECT как запрос.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)