我有一个 CI 实例, 它连接到 DB 并检查使用页面前的权限。 如果当前用户无法访问该页面, 它会重定向到登录页面 。
登录页面显然设置了权限,以便所有用户都可以访问。
最近发生故障后,数据库服务器又回到另一个IP地址(谢谢亚马逊,EC2)上,这导致 CI 无法检查任何页面的权限 - 包括登录。 由于代码假设“ 是” 以外的东西为“ 否 ”, 因此它被重定向到“ 登录” 。 结果是一个无限的重定向循环 。
虽然这个确切的问题不应该再发生(静态弹性 IP), 但我想在 Db 连接下降时发现, 并妥善处理它 。
我见过"https://stackoverflow.com/a/3785984/156755>>>这个SO问题 ,这是我想实现的目标,但我并没有在任何控制器中明确装入数据库,而是在自动装入配置文件中。
那么,
我怎样才能从CI内部查询DB连接的状态?我是否必须运行一个无效的查询,检查我是否得到结果,或者是否有更优雅的解决方案?
编辑: 检查目前正在钩子中进行 :
$hook[ post_controller_constructor ] = array(
class => AuthHook ,
function => ValidateCredentials ,
filename => auth.php ,
filepath => hooks
);