我搜索了很多,并花了几个小时,但大多数答案似乎要复杂得多。我似乎对我不知道是什么方面有一些基本的误解。我正在使用MySQL版本5.5.34并尝试构建一个存储过程,但是每当我调用它时,我都会收到错误:
SELECT
s.SCHEMA_NAME,
s.DEFAULT_COLLATION_NAME
FROM `information_schema`.SCHEMATA s
GROUP BY BINARY s.SCHEMA_NAME
ORDER BY BINARY `SCHEMA_NAME` ASC
MySQL said: Documentation
#2014 - Commands out of sync; you can't run this command now
我首先定义最基本的程序
DROP PROCEDURE IF EXISTS get;
SET delimiter //
CREATE PROCEDURE get()
BEGIN
SELECT 'hey' AS col;
END //
SET delimiter ;
然后尝试用
CALL get();
发生错误时。目前我正在phpMyAdmin界面中尝试这个。
如果您能为我指出正确的方向,我将非常高兴!
谢谢
使用 $this->db->reconnect();调用前存储过程
最后,我找到了解决方案。我在OS X上使用一个不是最新版本的MAMP,它似乎仍然使用已弃用的mysql而不是mysqli。这导致了我的问题中提到的存储过程的一些问题。
但是,更新到当前版本的 MAMP 解决了问题!