Det afhænger af, hvordan du vil revidere dem. Hvis du leder efter en sidebasis, vil det være fint at aktivere profileren. Dette viser alle forespørgsler, der kører på den pågældende sideindlæsning, samt den tid, det tager at udføre dem. Se linket nedenfor på profileren.
http://codeigniter.com/user_guide/general/profiling.html
Hvis du ønsker at logge alle forespørgslerne, efterhånden som de sker, og derefter læse logfilen senere, bliver du nødt til at udvide databaseklassen. Hvis dette er tilfældet, så kommenter og jeg vil opdatere/udvide mit svar yderligere.
Udvider for at overskrive query()
Udvid MY_Loader.php i /application/core/ og indsæt denne funktion
function database($params = '', $return = FALSE, $active_record = NULL)
{
// Grab the super object
$CI =& get_instance();
// Do we even need to load the database class?
if (class_exists('CI_DB') AND $return == FALSE AND $active_record == NULL AND isset($CI->db) AND is_object($CI->db)) {
return FALSE;
}
require_once(BASEPATH.'database/DB'.EXT);
// Load the DB class
$db =& DB($params, $active_record);
$my_driver = config_item('subclass_prefix').'DB_'.$db->dbdriver.'_driver';
$my_driver_file = APPPATH.'core/'.$my_driver.EXT;
if (file_exists($my_driver_file)) {
require_once($my_driver_file);
$db = new $my_driver(get_object_vars($db));
}
if ($return === TRUE) {
return $db;
}
// Initialize the db variable. Needed to prevent
// reference errors with some configurations
$CI->db = '';
$CI->db = $db;
}
Opret derefter /application/core/MY_DB_mysql_driver.php
Så indeni kan du overskrive query()
function query($sql, $binds = FALSE, $return_object = TRUE) {
// Do your stuff
return parent::query( $sql, $binds, $return_object );
}
Erstat naturligvis mysql i filnavnet til den databasedriver, du bruger/forsøger at udvide.
Dette vil også fungere med Active Record som alle get()
metoder kalder på query()
fra driveren til at køre deres forespørgsler.