2010-08-26 12 views
5

क्या mysql के लिए पीडीओ कनेक्शन की एक अद्वितीय कनेक्शन आईडी प्राप्त करने का कोई तरीका है?पीडीओ कनेक्शन आईडी प्राप्त करें

+0

क्या आप इस आईडी के साथ क्या करना चाहते हैं? उदा .: वस्तुओं की तुलना करें? Mysql सामान्य क्वेरी लॉग में सहसंबंध प्रविष्टियों को खोजें? कुछ प्रकार के कनेक्शन पूलिंग लागू करता है? ...? – VolkerK

उत्तर

11

इस तरह की कोशिश करें।

print_r($dbh->query('SELECT CONNECTION_ID()')->fetch(PDO::FETCH_ASSOC)); 

आप CONNECTION_ID() mysql आदेश पर अमल करने के लिए कनेक्शन आईडी प्राप्त करने के लिए एक नियमित रूप से क्वेरी का उपयोग कर सकते हैं।

See the mySQL manual for more

-1
/* Define Data */ 
    define("DB_HOST","localhost"); 
    define("DB_NAME","DB_NAME"); 
    define("DB_USERNAME","DB_USERNAME"); 
    define("DB_PASSWORD","DB_PASSWORD"); 
    define("DB_CHARSET","utf8"); 


    class conn_db 
    { 
     private static $main_var = NULL; 
     function __construct() 
     { 
    $this->db_host=DB_HOST; 
     $this->db_name=DB_NAME; 
     $this->db_username=DB_USERNAME; 
     $this->db_pass=DB_PASSWORD; 


      if (!self::$main_var) 
     { 
     self::$main_var= new PDO("mysql:host=".$this->db_host.";dbname=". $this->db_name.";charset=".DB_CHARSET."", $this->db_username, $this->db_pass); 

     self::$main_var->setAttribute(PDO::ATTR_EMULATE_PREPARES, 1);  
     self::$main_var->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

     } 

     return self::$main_var; 

    } 

    /*fetch results*/ 
     public static function get_results($getquery,$param=NULL,$type=NULL) 
      { 

       try 
       { 
       $PDO_connect=self::$main_var; 
       $data_query=$PDO_connect->prepare($getquery); 
      if($param!=NULL) 
      { 
       foreach($param as $param_name => &$param_value) 
       { 
       $data_query->bindParam(':'.$param_name, $param_value); 
       } 
      } 
       $data_query->execute(); 
       if($type==NULL) 
       { 
        $fetch_type=PDO::FETCH_OBJ; 

       } 
       if($type=="_A") 
       { 
        $fetch_type=PDO::FETCH_ASSOC; 
       } 
       $fetch_data=$data_query->fetchAll($fetch_type); 
       return $fetch_data; 

       } 
    catch(PDOException $Exc) { 
     echo $Exc->getMessage(); 
       die(); 
        return FALSE; 
        } 


      } 
      /*action results such like insert , update,delete and alter 
      return value last insert row id 
      */ 
      public static function query($getquery,$param=NULL) 
      { 
       try 
       { 
       $PDO_connect=self::$main_var; 
       $data_query=$PDO_connect->prepare($getquery); 


       /*for insertion*/ 
       if (strpos(strtolower($getquery),'insert') !== false) 
       { 
        $data_query->execute($param); 

     return $PDO_connect->lastInsertId(); 
        } 

        /*for update,delete,etc*/ 
        else{ 

          if($param!=NULL) 
      { 
      foreach($param as $param_name => &$param_value) 
       { 
       $data_query->bindParam(':'.$param_name, $param_value); 
       } 
      } 
       $data_query->execute(); 
         return $data_query; 
        } 
       } 

       catch(PDOException $Exc) { 
       echo $Exc->getMessage(); 
       die(); 
      return FALSE;} } 
    } 
    $GLOBALS['conn_db']=new conn_db(); 
+1

सिर्फ विचार: क्या यह आपके उत्तर को पढ़ने वाले अन्य लोगों के लिए उपयोगी होगा, यह समझाने के लिए कि यह अन्य कनेक्शन के विरुद्ध चेक किए जाने की तुलना में एक अद्वितीय कनेक्शन आईडी क्यों प्रदान करता है, जो आवश्यक था? (मैं डाउनवोट नहीं करता) –

+0

कोड केवल उत्तर ही निराश होते हैं। इसके अलावा, आपके इंडेंटेशन के साथ क्या हो रहा है, * गीश *! –

संबंधित मुद्दे