无法在phpMyAdmin中执行存储过程:找不到selectCategory例程
解决phpMyAdmin中找不到存储过程
selectCategory的问题 别着急,我们先把存储过程找不到的问题解决,之后就能排查是PHP代码还是存储过程本身的问题了。下面是几个常见的排查和修复步骤:
确认存储过程是否真的创建成功
进入你的xxx数据库,切换到「存储过程(Routines)」标签,看看列表里有没有selectCategory。如果没有,说明你的创建语句没执行成功:- 先确保你执行创建代码时,已经选中了
xxx数据库(phpMyAdmin左侧面板选对库); - 把整个创建代码块(从
DELIMITER $$到DELIMITER ;)全部选中,一次性执行,不要分段运行。
- 先确保你执行创建代码时,已经选中了
检查创建语句的依赖和语法
你的存储过程代码看起来语法没问题,但要确认category表确实存在于xxx数据库中。可以先执行SELECT * FROM category;测试,如果表不存在,创建存储过程时会报错,导致存储过程无法生成。确保调用存储过程的方式正确
在phpMyAdmin中调用存储过程必须使用CALL语句,正确的调用命令是:CALL selectCategory();如果你直接写
selectCategory()或者其他错误格式,就会提示找不到这个routine。同时调用时也要确保当前选中的是xxx数据库。用SQL语句验证存储过程是否存在
可以执行这条SQL来查看xxx库下的所有存储过程:SHOW PROCEDURE STATUS WHERE Db = 'xxx';如果结果里没有
selectCategory,那就回到第一步重新创建;如果有,那可能是调用时的数据库上下文不对,或者phpMyAdmin缓存问题,刷新页面再试试。
等你能成功调用selectCategory并看到正确的查询结果后,就可以对比PHP代码里的调用逻辑了:如果存储过程返回的结果符合预期,那问题大概率出在PHP代码的调用或处理逻辑上;如果存储过程返回的结果不对,再调整存储过程的代码即可。
内容的提问来源于stack exchange,提问作者ptK
相关产品推荐
相关产品推荐

