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 语句在存储过程中的结果未显示的主要内容,如果未能解决你的问题,请参考以下文章

无法在 phpmyadmin 中执行存储过程

如何在 phpMyAdmin 中查看我的存储过程?

配置phpmyadmin配置存储

如何通过 phpMyAdmin 界面使用存储过程

phpMyAdmin,存储过程不按预期工作

phpMyAdmin - 查询执行时间