Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

कोडइग्निटर:सभी $ का एसक्यूएल ऑडिट-> डीबी-> क्वेरी () विधि कॉल?

यह निर्भर करता है कि आप उनका ऑडिट कैसे करना चाहते हैं। यदि आप प्रति पृष्ठ आधार की तलाश कर रहे हैं तो प्रोफाइलर को सक्षम करना ठीक रहेगा। यह उस पेज लोड पर चलने वाली सभी क्वेरीज़ के साथ-साथ उन्हें निष्पादित करने में लगने वाले समय को भी दिखाता है। प्रोफाइलर पर नीचे दिया गया लिंक देखें।

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 पर कॉल करती हैं अपने प्रश्नों को चलाने के लिए ड्राइवर से।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. तालिका में दो प्राथमिक कुंजियों की अनुमति क्यों नहीं है?

  2. Jboss क्विकस्टार्ट ट्यूटोरियल में mysql को कैसे शामिल करें

  3. MySql,PHP और ADODB का उपयोग करके तैयार किए गए स्टेटमेंट में क्लॉज में पैरामीटर किया गया

  4. PHP और MySQL - जांचें कि क्या उपयोगकर्ता नाम पहले ही लिया जा चुका है

  5. पायथन, MySQL _mysql_exceptions.ProgrammingError:(1064, 'आपको अपने SQL सिंटैक्स में एक त्रुटि है