Ich muss ein Abfrageprotokoll in meinem Projekt erstellen. Also habe ich einen post_controller
Haken erstellt. Es speichert alle ausgeführten Abfragen sowohl in einer Textdatei als auch in einer Datenbank. Aber es funktioniert nur für SELECT
Abfragen. Ich weiß, es ist eine wiederholte Frage, aber nach viel Suche konnte ich keine Lösung finden.Abfrage-Log-Codeigniter mit Haken
Hier ist mein Code:
config/hooks.php:
$hook['post_controller'] = array(
'class' => 'LogQueryHook',
'function' => 'log_queries',
'filename' => 'log_queries.php',
'filepath' => 'hooks'
);
Haken/log_queries.php
class LogQueryHook {
function log_queries() {
$CI =& get_instance();
$times = $CI->db->query_times;
//$dbs = array();
$output = NULL;
$queries = $CI->db->queries;
//print_r($queries);
if (count($queries) == 0){
$output .= "no queries\n";
}else{
foreach ($queries as $key=>$query){
$took = round(doubleval($times[$key]), 3);
$CI->db->query('INSERT INTO queryLog_tbl(`query`, `executedTime`, `timeTaken`, `executedBy`) VALUES ("'.$query.'", "'.date('Y-m-d h:i:s').'", "'.$took.'","'.$CI->session->userdata('UserID').'")');
$output .= $query . "\n";
$output .= "===[took:{$took}]\n\n";
}
}
$CI->load->helper('file');
if (! write_file(APPPATH . "/logs/queries.log.txt", $output, 'a+')){
log_message('debug','Unable to write query the file');
}
}
}
und in meinem config.php aktiviert Haken: $config['enable_hooks'] = TRUE;
danke für Ihren Vorschlag. Ich habe eine Bibliothek für das selbe wie du vorgeschlagen erstellt. – geeth