- 42
- 0
CI框架调用MySQL的存储过程,可以返回结果,但是不能渲染到模板。报错如下:
Error Number: 2014
Commands out of sync; you can't run this command now
这是什么原因呢?
代码如下:
$common = $this->db->query("call welcome_common_data($role_id)");
$data['head_data'] = $common->result_array()[0];
$this->view('/welcome/test',$data);
- 共 0 条
- 全部回答
-
镜中花水中月 普通会员 1楼
在MySQL中,如果调用存储过程时遇到错误,通常有以下几种情况:
- 存储过程未定义:在调用存储过程之前,存储过程定义可能有误,或者存储过程不存在。在这种情况下,你需要确保你正在正确地调用存储过程,包括提供存储过程的名称和参数。例如:
sql CALL my_procedure_name(param1, param2);- 存储过程参数类型错误:在存储过程中,你可能使用了与存储过程预期参数类型不匹配的参数类型。例如,如果你的存储过程接受一个字符串参数,但你在调用时传递了一个整数,那么你将得到一个错误。
sql CALL my_procedure_name('string', 42);- 存储过程没有返回值:存储过程通常有一个或多个返回值,但在调用时可能没有提供这些值。例如,如果你的存储过程返回一个整数,但在调用时没有提供任何参数,那么你将得到一个错误。
sql CALL my_procedure_name();- 存储过程调用不存在:在调用存储过程时,你可能尝试调用不存在的存储过程。在这种情况下,你将得到一个错误,因为MySQL不识别某个不存在的存储过程。
sql CALL my_non_existent_procedure();- 存储过程参数已过期:在存储过程中,你可能需要为参数指定有效期。然而,如果你提供的参数超出了这个有效期,MySQL将返回一个错误。
sql CALL my_procedure_name(param1, param2, 'timestamp', '0000-00-00 00:00:00');- 存储过程参数值为空:在存储过程中,你可能需要传递一个参数值,但这个值可能是空的。在这种情况下,MySQL将返回一个错误。
sql CALL my_procedure_name('string', '', '42', 'timestamp', '0000-00-00 00:00:00');- 存储过程参数值过大:在存储过程中,你可能需要传递一个参数值,但这个值过大,超过了存储过程可以处理的最大值。在这种情况下,MySQL将返回一个错误。
sql CALL my_procedure_name('string', 1024 * 1024, 'timestamp', '0000-00-00 00:00:00');要解决这些错误,你可以遵循以下步骤:
-
确保你调用的存储过程是正确的,它已定义并存在于你的MySQL服务器上。你可以使用
SHOW PROCEDURE STATUS语句来检查存储过程是否存在。 -
确保你提供的参数是正确的,它符合存储过程的参数类型。你可以使用
PREPARE语句和EXECUTE语句来执行存储过程,并检查返回值是否符合预期。 -
确保你提供的参数的有效期符合存储过程的参数有效期。你可以使用
PREPARE语句和EXECUTE语句来执行存储过程,并检查返回值是否符合预期。 -
确保你提供的参数的值符合存储过程的参数类型。你可以使用
PREPARE语句和EXECUTE语句来执行存储过程,并检查返回值是否符合预期。 -
确保你提供的参数值的大小符合存储过程的参数最大值。你可以使用
PREPARE语句和EXECUTE语句来执行存储过程,并检查返回值是否符合预期。 -
如果以上步骤都正常,但仍然出现错误,可能需要检查错误消息以确定问题的具体原因。错误消息通常包含有关存储过程名称、调用时提供的参数、返回值类型和有效期等信息。你可以使用
SHOW ERRORS语句来获取错误信息,并尝试使用EXPLAIN语句或ERROR_MESSAGE函数来查看详细的错误消息。
总之,调用MySQL存储过程时遇到错误可能是由于存储过程定义、参数类型、返回值类型、有效期、参数值大小和错误消息等原因。通过仔细检查和调试,你可以定位并解决这些错误,从而成功调用MySQL存储过程。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
