2014-02-21 2 views
1

Я использую процедуру, описанные ниже: Но я не получаю никакого значения, когда я печатаю это в локальном PHPMyAdmin/MySQL:не может видеть любое значение из MySQL хранимой процедуры

call GetAllProducts() ; 

он не возвращает значений, как выберите заявление делает? Где я могу выполнить, чтобы увидеть значения? Как это сделать wotk.I действительно ценю любую помощь. Спасибо заранее.

Приведенная ниже процедура успешно выполнена и сохранена. Я проверил это.

DELIMITER // 
CREATE PROCEDURE GetAllProducts() 
    BEGIN 
    SELECT * FROM products; 
    END // 
DELIMITER ; 
+0

У вас нет ошибок? Вы подключены к правой базе данных через PMA (например, не тест-тест)? То, что вам нужно, должно точно работать. Просьба также пояснить, можете ли вы выполнить его с помощью 'call GetAllProducts()' из командной строки MySQL? То, что вы использовали 'DELIMITER' (который является командой CLI для MySQL), означает, что у вас есть доступ к клиенту командной строки' mysql' ... –

+0

@MichaelBerkowski 'Вы используете устаревшее расширение mysql PHP, которое не способный обрабатывать несколько запросов. Выполнение некоторых хранимых процедур может завершиться неудачей! Пожалуйста, используйте улучшенное расширение «mysqli», чтобы избежать каких-либо проблем. «--------- Я получаю следующий ответ, когда я нажимаю execute в подпрограммах в mysql. – jason

+1

@jason Я думаю, что вы только что ответили на свой вопрос ... зайдите в файл PMAs 'config.inc.php' и измените' $ cfg ['Servers'] [$ i] ['extension'] 'to * * mysqli ** (и убедитесь, что вы используете MySQLi, или еще лучше PDO, поскольку это лучше справляется с процедурами, которые я нашел, в вашем приложении). – CD001

ответ

0

Несколько раз вы упоминаете использование phpMyAdmin; какая у вас версия?

Я неспособен воспроизвести вашу проблему; он работает правильно для меня. В базе данных перейдите на вкладку Routines, а затем для своей процедуры GetAllProducts нажмите ссылку «Выполнить».

enter image description here

+0

Я пробовал то же самое и «Вы используете устаревшее расширение mysql PHP, которое не способно обрабатывать несколько запросов. Выполнение некоторых хранимых процедур может завершиться неудачей! Пожалуйста, используйте улучшенное расширение «mysqli», чтобы избежать каких-либо проблем. «--------- Я получаю следующий ответ, когда я нажимаю execute в подпрограммах в mysql. используя последний phpmyadmin/MAMP – jason

+0

Извините, на основе комментариев выше Я думал, вы уже переключились на mysqli. Я предлагаю отредактировать ваш config.inc.php и добавить строку '$ cfg ['Servers'] [$ i] ['extension'] = 'mysqli';' как это предложено CD001. –

+0

Я попробую это и вернусь к вам за дополнительными запросами. Спасибо – jason

Смежные вопросы