作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个 CI 实例,它连接到 Db 并在提供页面之前检查权限。如果当前用户无法访问该页面,它将重定向到登录页面。
显然,登录页面设置了权限,以便所有用户都可以访问。
在最近的一次故障之后,数据库服务器恢复到不同的 IP 地址(感谢 Amazon、EC2)。这导致 CI 无法检查任何页面的权限 - 包括登录。由于代码假设除了"is"之外的任何内容都是“否”,因此它重定向到“登录”。结果是一个无限的重定向循环。
虽然这个确切的问题不应该再次发生(静态弹性 IP),但我想检测 Db 连接何时断开并适本地处理它。
我看过 This SO Question这是我想要实现的目标,但我没有在任何 Controller 中显式加载数据库,它在自动加载配置文件中。
所以,
如何从 CI 内部查询 Db 连接的状态?我是否必须运行一个无用的查询并检查我是否得到返回结果或者是否有更优雅的解决方案?
编辑:当前正在 Hook 中执行检查:
$hook['post_controller_constructor'] = array(
'class' => 'AuthHook',
'function' => 'ValidateCredentials',
'filename' => 'auth.php',
'filepath' => 'hooks'
);
最佳答案
您可以扩展 Controller 并在其构造函数中加载数据库:
class My_Controller extends CI_Controller {
public function __construct(){
parent::__construct();
if ( $this->load->database() === FALSE )
{
//do something
}
}
}
您所有的 Controller 都将继承新 Controller 。
关于php - 检测 CodeIgniter 何时无法连接到 Db,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10706504/
我正在开发一个 voip 调用应用程序。我需要做的是在接到来电时将 Activity 带到前台。我在应用程序中使用 Twilio,并在收到推送消息时开始调用。 问题是我试图在接到任何电话时显示 Act
我是一名优秀的程序员,十分优秀!