我想在使用hooks执行后记录所有查询。 -i启用了config.php中的挂钩 - 这是我的钩子 - >
$hook['post_controller'] = array(
'class' => 'Db_log',
'function' => 'logQueries',
'filename' => 'db_log.php',
'filepath' => 'hooks'
);
- 这是钩子定义 - >
class Db_log
{
function __construct()
{
}
function logQueries()
{
$CI = & get_instance();
$filepath = APPPATH . 'logs/Query-log-' . date('Y-m-d') . '.php';
$handle = fopen($filepath, "a+");
$times = $CI->db->query_times;
foreach ($CI->db->queries as $key => $query)
{
$sql = $query . " \n Execution Time:" . $times[$key];
fwrite($handle, $sql . "\n\n");
}
fclose($handle);
}
}
- 创建query_log文件 - 但没有存储查询的记录
答案 0 :(得分:10)
你的代码看起来很好 - 这是因为你的数据库配置不起作用的唯一原因 - 在application / config /
下的database.php中查看@your DB Connection有一个选项" save_queries"应该设置为true
$db['default'] = array(
...
'save_queries' => TRUE
);
答案 1 :(得分:0)
对我来说,只有在config / hooks.php中定义de $ hook数组时才有效。