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

Форум MySQL

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

 

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

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

тема: Запуск встроенной процедуры
 
 автор: ivanm   (15.10.2009 в 02:12)   письмо автору
 
 

Есть простая хранимая процедура созданная пользователем
CREATE  PROCEDURE `testproc`()
BEGIN
SELECT *  FROM products;
END;

Когда я пытаюсь вызвать её средствами PHP то получаю ошибку:

$zapros = mysql_query("CALL testproc()");
        while ($cat = mysql_fetch_array($zapros))
        {
            

        }

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Z:\home\localhost\www\compshop\test.php on line \

  Ответить  
 
 автор: Trianon   (15.10.2009 в 08:46)   письмо автору
 
   для: ivanm   (15.10.2009 в 02:12)
 

1. А выполняя запуск в более дружественном клиенте MySQL, что Вы получаете и как реагируете?
2. А что Вы делаете, получая аналогичное php-сообщение при выполнении простого SQL-запроса?



PS. Что это за манера соваться с паяльником в телевизор, не научившись сперва пультом управлять?

  Ответить  
 
 автор: ivanm   (15.10.2009 в 11:04)   письмо автору
 
   для: Trianon   (15.10.2009 в 08:46)
 

Я непонимаю в чем ошибка то моя?

  Ответить  
 
 автор: Trianon   (15.10.2009 в 12:32)   письмо автору
 
   для: ivanm   (15.10.2009 в 11:04)
 

Фактические.
1. в том, что перед тем, как помещать SQL-код в php, Вы не попробовали его исполнить в консоли или дургом клиенте.
2. В том, что в php не проверяете успешность выполннения запроса и не пользуетесь функцией mysql_error при неудаче.

Идеологическая.
3. в том, что хватаеетсь за хранимые процедуры, не освоив более простые конструкции языка.

  Ответить  
 
 автор: ivanm   (15.10.2009 в 12:50)   письмо автору
 
   для: Trianon   (15.10.2009 в 12:32)
 

Я ввожу в консоли CALL testproc() и в ответ получаю таблицу.
А хранимые процедуры я использую потому, что делаю курсовик и создание хранимых процедур там обязательное условие.

  Ответить  
 
 автор: Trianon   (15.10.2009 в 14:06)   письмо автору
 
   для: ivanm   (15.10.2009 в 12:50)
 

>Я ввожу в консоли CALL testproc() и в ответ получаю таблицу.

Значит процедура создана успешно.
Что возвращают mysql_query и mysql_error ?
Может быть call testproc и не должен формировать набор результата?

  Ответить  
 
 автор: ivanm   (15.10.2009 в 20:49)   письмо автору
 
   для: Trianon   (15.10.2009 в 14:06)
 

Если кому не сложно, можете написать пример встроенной процедуры которая выводит таблицу и вывести её средствами ПХП

  Ответить  
 
 автор: Trianon   (15.10.2009 в 21:40)   письмо автору
 
   для: ivanm   (15.10.2009 в 20:49)
 

Весьма сомнительно, что Вы добьетесь чего-то осмысленного через старый клиент php_mysql.
Через php_mysqli - более чем вероятно.
<?
$mi 
mysqli_connect('localhost''testuser''testpwd''testdb');
$mr mysqli_query($mi'call testproc();');
var_dump($mr$mr:mysqli_error($mi));
for(;
$row mysqli_fetch_assoc($mr);var_dump($row)) print('<br />');


object(mysqli_result)#2 (0) { } 
array(3) { ["id"]=> string(1) "1" ["hittime"]=> string(10) "2008-01-27" ["k"]=> string(2) "aa" } 
array(3) { ["id"]=> string(1) "2" ["hittime"]=> string(10) "2008-01-28" ["k"]=> string(3) "aaa" } 
array(3) { ["id"]=> string(1) "3" ["hittime"]=> string(10) "2008-01-29" ["k"]=> string(4) "aaaa" } 

  Ответить  
Rambler's Top100
вверх

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