diff --git a/core/trunk/core/class/class_db.php b/core/trunk/core/class/class_db.php index 63c3960af70099a8d430a32b1fef7d7f4e546e0d..2d1d58033eb3c3a94b0adb6a622fab071b9f6286 100644 --- a/core/trunk/core/class/class_db.php +++ b/core/trunk/core/class/class_db.php @@ -195,9 +195,13 @@ class dbquery extends functions */ public function connect() { + # Do not connect if already connected + if($this->_sqlLink) + return; + $this->_debug = 0; $this->_nbQuery = 0; - + switch($this->_databasetype) { case 'MYSQL' : @@ -285,20 +289,15 @@ class dbquery extends functions { switch($this->_databasetype) { - case 'POSTGRESQL' : - $this->connect(); $this->query("select column_name from information_schema.columns where table_name = '" . $table . "' and column_name = '" . $field . "'"); $res = $this->nb_result(); - $this->disconnect(); if ($res > 0) return true; else return false; case 'ORACLE' : - $this->connect(); $this->query("SELECT * from USER_TAB_COLUMNS where TABLE_NAME = '" . $table . "' AND COLUMN_NAME = '" . $field . "'"); $res = $this->nb_result(); - $this->disconnect(); if ($res > 0) return true; else return false; @@ -319,6 +318,10 @@ class dbquery extends functions */ public function query($sqlQuery, $catchError = false, $noFilter = false) { + # Connect if not already connected + if(!$this->_sqlLink) + $this->connect(); + $canExecute = true; // if filter, we looking for ; or -- in the sql query if (!$noFilter) { @@ -619,6 +622,7 @@ class dbquery extends functions $dbNbResult->connect(); $dbNbResult->query("SELECT COUNT(*) FROM (" . $this->_debugQuery . ")"); $row = $dbNbResult->fetch_array(); + $dbNbResult->disconnect(); return $row[0]; default : return false; } @@ -630,6 +634,9 @@ class dbquery extends functions */ public function disconnect() { + if(!$this->_sqlLink) + return; + switch($this->_databasetype) { case 'MYSQL':