设为首页
收藏本站
Archiver
用户
登录
入住
用户名
Email
自动登录
找回密码
密码
登录
入住 CI 中国社区
首页
返回 CodeIgniter 中国首页
论坛
BBS
导读
Guide
个人主页
Space
中文手册
搜索
CodeIgniter 搜索引擎
视频教程
案例
任务
搜索
搜索
本版
帖子
用户
设为首页
收藏本站
Archiver
开启辅助访问
切换到宽版
日志
相册
分享
记录
CodeIgniter4
CodeIgniter3
CodeIgniter2
帖子
好友
道具
勋章
收藏
任务
记录
留言板
设置
我的收藏
退出
腾讯QQ
微信登录
CodeIgniter 中国开发者社区
»
论坛
›
CodeIgniter 开发
›
代码共享与下载
›
每次重启,第一次调用Mysql存储过程失败的解决方法 ...
返回列表
查看:
2968
|
回复:
0
[核心代码 Core]
每次重启,第一次调用Mysql存储过程失败的解决方法
[复制链接]
longzhifeiyu
longzhifeiyu
当前离线
积分
101
IP卡
狗仔卡
发表于 2013-3-8 15:01:34
|
显示全部楼层
|
阅读模式
前段时间在做交叉表的功能,在CSDN和本坛得到了很多启发和帮助。后来在快接近尾声时,遇到一个不知道是不是个案的问题。
每次重启服务器,第一次运行调用存储过程会出错,返回值为空。第二次以后就正常了。
虽然也算不上毁灭性的问题,只要保持服务器不停,或者重启后自己运行一次,倒也不是问题。
这其间,反复检查存储过程中的语法错误,和优化存储过程,但都未找到问题的关键。
后来,重启一次之后,单独在Mysql中运行这段存储过程,没有出现错误。我怀疑和CI有关。
最后只好在代码中加以判断,现将调用存储过程的代码发布出来,供大家参考。
test是存储过程,tt是存储过程生成的临时表。
PHP
复制代码
$sql
=
"CALL test()"
;
$this
->
db
->
query
(
$sql
)
;
$this
->
db
->
reconnect
(
)
;
if
(
$this
->
db
->
table_exists
(
'tt'
)
)
{
结果不为空代表调用成功。
}
else
{
结果为空代表调用失败。重新调用一次。
$query
=
$this
->
db
->
query
(
$sql
)
;
$this
->
db
->
reconnect
(
)
;
}
复制代码
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
入住 CI 中国社区
本版积分规则
发表回复
回帖后跳转到最后一页