2016-09-20 91 views
5

我想在使用掛鉤執行後記錄所有查詢。 -i使鉤在config.php - 這是我的鉤 - >在codeigniter中執行執行後記錄所有查詢

$hook['post_controller'] = array( 
    'class' => 'Db_log',    
    'function' => 'logQueries',  
    'filename' => 'db_log.php',  
    'filepath' => 'hooks'   
); 

-and這是鉤認定中 - >

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); 
    } 

} 

--its創建query_log文件 - 但沒有存儲查詢的記錄

回答

4

你的代碼看起來很好 - 這不起作用的唯一原因是在你的數據庫配置 - 看看@your DB Connection在database.php下application/config/

有一個選項「save_queries」應設置爲true

$db['default'] = array(
    ... 
    'save_queries' => TRUE 
); 
+0

謝謝...它的工作.... –

+0

上面的代碼現在工作正常......但它的日誌記錄SELECT查詢只,如果我只想INSERT,UPDATE和DELETE記錄而不是SELECT查詢? –

+0

即使其他類型的查詢應該被記錄 - 在查詢中是所有類型的查詢 – sintakonte

0

對於我來說,只是工作時,我定義的配置去$勾陣/ hooks.php。