यह निर्भर करता है कि आप उनका ऑडिट कैसे करना चाहते हैं। यदि आप प्रति पृष्ठ आधार की तलाश कर रहे हैं तो प्रोफाइलर को सक्षम करना ठीक रहेगा। यह उस पेज लोड पर चलने वाली सभी क्वेरीज़ के साथ-साथ उन्हें निष्पादित करने में लगने वाले समय को भी दिखाता है। प्रोफाइलर पर नीचे दिया गया लिंक देखें।
http://codeigniter.com/user_guide/general/profiling.html
यदि आप सभी प्रश्नों को लॉग इन करना चाहते हैं और बाद में लॉग फ़ाइल को पढ़ना चाहते हैं, तो आपको डेटाबेस क्लास का विस्तार करना होगा। अगर ऐसा है, तो टिप्पणी करें और मैं अपने उत्तर को और अपडेट/विस्तारित करूंगा।
query()
over को अधिलेखित करने के लिए विस्तार
MY_Loader.php को /application/core/ में विस्तारित करें और इस फ़ंक्शन को सम्मिलित करें
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;
}
फिर बनाएं /application/core/MY_DB_mysql_driver.php
फिर उसके अंदर आप query()
. को अधिलेखित कर सकते हैंfunction query($sql, $binds = FALSE, $return_object = TRUE) {
// Do your stuff
return parent::query( $sql, $binds, $return_object );
}
फ़ाइल नाम में MySQL को स्पष्ट रूप से बदलें जो भी डेटाबेस ड्राइवर आप उपयोग कर रहे हैं/विस्तार करने की कोशिश कर रहे हैं।
यह सक्रिय रिकॉर्ड के साथ भी काम करेगा क्योंकि सभी get()
विधियाँ query()
upon पर कॉल करती हैं अपने प्रश्नों को चलाने के लिए ड्राइवर से।