Het hangt ervan af hoe u ze wilt controleren. Als u op zoek bent naar een basis per pagina, dan is het inschakelen van de profiler prima. Dit toont alle zoekopdrachten die op die pagina worden uitgevoerd, evenals de tijd die nodig is om ze uit te voeren. Zie de onderstaande link op de profiler.
http://codeigniter.com/user_guide/general/profiling.html
Als u alle query's wilt loggen terwijl ze plaatsvinden en het logbestand later wilt lezen, moet u de databaseklasse uitbreiden. Als dit het geval is, reageer dan en ik zal mijn antwoord bijwerken/uitbreiden.
Uitbreiden om query()
te overschrijven
Breid MY_Loader.php uit in /application/core/ en voeg deze functie in
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;
}
Maak vervolgens /application/core/MY_DB_mysql_driver.php
Daarbinnen kun je query()
. overschrijvenfunction query($sql, $binds = FALSE, $return_object = TRUE) {
// Do your stuff
return parent::query( $sql, $binds, $return_object );
}
Vervang uiteraard mysql in de bestandsnaam door het databasestuurprogramma dat u gebruikt/probeert uit te breiden.
Dit werkt ook met Active Record als alle get()
methoden doen een beroep op query()
van de bestuurder om hun zoekopdrachten uit te voeren.