phpMyAdmin - SELECT 语句在存储过程中的结果未显示
Posted
技术标签:
【中文标题】phpMyAdmin - SELECT 语句在存储过程中的结果未显示【英文标题】:phpMyAdmin - SELECT statement's result in stored procedure not showing 【发布时间】:2014-01-07 20:36:57 【问题描述】:我已经创建了一个简单的程序:
CREATE PROCEDURE `simpleProcedure` ( IN `parameter` INT) NOT DETERMINISTIC READS SQL DATA SQL SECURITY DEFINER
BEGIN
SELECT *
FROM table1;
END
在 phpMyAdmin 中使用CALL simpleProcedure(1)
运行此程序不会显示查询结果...如何让 phpMyAdmin 在程序内显示查询结果?
【问题讨论】:
您的phpmyadmin
版本是什么?
我的 phpmyadmin
版本是 4.0.5
【参考方案1】:
您需要一个 OUT 参数才能返回结果,请参阅http://dev.mysql.com/doc/refman/5.0/en/create-procedure.html。
来自 sakila 数据库的示例:
DELIMITER $$
CREATE DEFINER=`root`@`127.0.0.1` PROCEDURE `film_in_stock`(IN p_film_id INT, IN p_store_id INT, OUT p_film_count INT)
READS SQL DATA
BEGIN
SELECT inventory_id
FROM inventory
WHERE film_id = p_film_id
AND store_id = p_store_id
AND inventory_in_stock(inventory_id);
SELECT FOUND_ROWS() INTO p_film_count;
END$$
【讨论】:
就我而言,可以从存储过程中返回SELECT
查询的结果,以便在 phpMyAdmin 中运行该过程会导致显示一个代表 @ 的结果的表987654324@该过程中的语句,我该如何完成?
我意识到这是一个很老的答案,但是...... MySQL 过程不需要任何 OUT 参数来返回结果集。但是,由于某些版本的 phpmyadmin 有时在奇怪的情况下不显示结果集,这个问题很混乱。现在我正在处理 phpmyadmin 4.8.4 的安装,其中不显示任何结果集,除非至少有一个 input 参数,即使只是一个未使用的虚拟参数。用一个输入参数(没有输出参数)和一个简单的 SELECT 语句定义过程,它返回结果就好了。以上是关于phpMyAdmin - SELECT 语句在存储过程中的结果未显示的主要内容,如果未能解决你的问题,请参考以下文章