Php Codeigniter-在每次访问页面时更新数据库

Php Codeigniter-在每次访问页面时更新数据库,php,codeigniter,Php,Codeigniter,我在Codeigniter中创建我的站点,在这里我需要为每次页面访问更新我的表字段上的时间戳。由于我不熟悉Codeigniter中的控制流,我不知道该在哪里编写代码?它应该是站点周围所有页面的通用项。最简单的方法可能是将其放入控制器的构造函数中,因为在每次页面加载时都会调用该构造函数。制作一个模型,并将模型名称添加到config/autoload.php搜索行: $autoload['model']=array() 然后(在您的模型制作完成后),您只需在每个控制器上请求update_entry(

我在Codeigniter中创建我的站点,在这里我需要为每次页面访问更新我的表字段上的
时间戳。由于我不熟悉Codeigniter中的控制流,我不知道该在哪里编写代码?它应该是站点周围所有页面的通用项。

最简单的方法可能是将其放入控制器的构造函数中,因为在每次页面加载时都会调用该构造函数。

制作一个模型,并将模型名称添加到config/autoload.php搜索行:

$autoload['model']=array()

然后(在您的模型制作完成后),您只需在每个控制器上请求update_entry()函数

$this->update->update_entry()

模型示例:

类更新扩展了CI_模型{

function update_entry()
{
    $timestamp    = time();

    $this->db->where('id',1)->update('entries', array('timestamp' => $timestamp));
}
}


您可以在application/config/hooks.php中使用钩子


或者简单地把它放在_构造中

所以把它放在公共标题中file@dianuj哪一个是codeigniter中具有db访问权限的常见文件?您是否已经在控制器中加载了数据库库?因此,我是否需要将其放入每个控制器的构造函数中?是的。如果你把它抽象成一个模型,你可以把它简化为每个构造函数中的几行代码。你可以创建一个MY_控制器,并将代码放入它的构造函数中。将此解决方案与pre_控制器挂钩混合,你就会得到你想要的东西。是否可以从挂钩访问db和会话?改用post_控制器构造函数挂钩。它在控制器构造函数之后和控制器方法之前调用。它应该对你有用
$hook['pre_controller'] = array(
                            'class'    => 'MyClass',
                            'function' => 'Myfunction',
                            'filename' => 'Myclass.php',
                            'filepath' => 'hooks',
                            'params'   => array('beer', 'wine', 'snacks')
                            );