|
|
|
| Есть простая хранимая процедура созданная пользователем
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 \ | |
|
|
|
|
|
|
|
для: ivanm
(15.10.2009 в 02:12)
| | 1. А выполняя запуск в более дружественном клиенте MySQL, что Вы получаете и как реагируете?
2. А что Вы делаете, получая аналогичное php-сообщение при выполнении простого SQL-запроса?
PS. Что это за манера соваться с паяльником в телевизор, не научившись сперва пультом управлять? | |
|
|
|
|
|
|
|
для: Trianon
(15.10.2009 в 08:46)
| | Я непонимаю в чем ошибка то моя? | |
|
|
|
|
|
|
|
для: ivanm
(15.10.2009 в 11:04)
| | Фактические.
1. в том, что перед тем, как помещать SQL-код в php, Вы не попробовали его исполнить в консоли или дургом клиенте.
2. В том, что в php не проверяете успешность выполннения запроса и не пользуетесь функцией mysql_error при неудаче.
Идеологическая.
3. в том, что хватаеетсь за хранимые процедуры, не освоив более простые конструкции языка. | |
|
|
|
|
|
|
|
для: Trianon
(15.10.2009 в 12:32)
| | Я ввожу в консоли CALL testproc() и в ответ получаю таблицу.
А хранимые процедуры я использую потому, что делаю курсовик и создание хранимых процедур там обязательное условие. | |
|
|
|
|
|
|
|
для: ivanm
(15.10.2009 в 12:50)
| | >Я ввожу в консоли CALL testproc() и в ответ получаю таблицу.
Значит процедура создана успешно.
Что возвращают mysql_query и mysql_error ?
Может быть call testproc и не должен формировать набор результата? | |
|
|
|
|
|
|
|
для: Trianon
(15.10.2009 в 14:06)
| | Если кому не сложно, можете написать пример встроенной процедуры которая выводит таблицу и вывести её средствами ПХП | |
|
|
|
|
|
|
|
для: 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" }
|
| |
|
|
|