Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вызов хранимой процедуры MySql из PHP
 
 автор: bdron   (12.12.2006 в 21:37)   письмо автору
 
 

Подскажите, как из php вызвать хранимую процедуру mysql, возвращающую один или несколько результатов?

   
 
 автор: Whi-teOoS   (12.12.2006 в 22:25)   письмо автору
 
   для: bdron   (12.12.2006 в 21:37)
 

Что есть хранимая процедура? Бишь представление?
а через mysql_query разве нельзя?

   
 
 автор: bdron   (12.12.2006 в 22:37)   письмо автору
 
   для: Whi-teOoS   (12.12.2006 в 22:25)
 

хранимая процедура - это та, что вызывается с помощью call в mysql.
mysql_query("call myfunction()") всегда возвращает null

   
 
 автор: cheops   (12.12.2006 в 22:49)   письмо автору
 
   для: bdron   (12.12.2006 в 22:37)
 

А что в находится в myfunction() и не выдаёт ли чего функция mysql_error() после выполнения mysql_query()?

   
 
 автор: bdron   (12.12.2006 в 23:00)   письмо автору
 
   для: cheops   (12.12.2006 в 22:49)
 

код процедуры:

 create procedure login(in name tinytext, in password tinytext)
 begin
  select emp.eNo, emp.eName, ePost
  from employee as emp, users
  where
 users.uName = name && users.uPassword = password && users.eNo = emp.eNo;
end


а это код вызова:

$sql = "call login('$uName', '$uPassword');";
        $result = mysql_query($sql);


Если не вызывать процедуру, а просто использовать ее запрос, то все работает.

mysql_error() возвращает PROCEDURE building.login can't return a result set in the given context

   
 
 автор: cheops   (13.12.2006 в 01:47)   письмо автору
 
   для: bdron   (12.12.2006 в 23:00)
 

У вас скорее всего используется клиентская библиотека версии ниже 5.0, которая "не понимает" хранимые процедуры и "не знает" как обрабатывать результат их выполнения.

   
 
 автор: bdron   (13.12.2006 в 20:04)   письмо автору
 
   для: cheops   (13.12.2006 в 01:47)
 

Расскажите, пожайлуйста, поподробнее. Клиентская библиотека которая входит в состав PHP?
У меня mysql 5.0.18 и php версии 5.1.2 в виде cgi приложения. Все это установлено на платформу windows xp и работает под управлением IIS v5.1.

   
 
 автор: bdron   (13.12.2006 в 20:43)   письмо автору
 
   для: bdron   (12.12.2006 в 21:37)
 

Все работает!
Перешел на использование mysqli_query совместно с mysqli_real_connect.

--
Спасибо всем интересовавшимся.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования