diff --git a/lib/adodb/adodb-active-record.inc.php b/lib/adodb/adodb-active-record.inc.php index ad9533ce41a..2c4b87800c3 100644 --- a/lib/adodb/adodb-active-record.inc.php +++ b/lib/adodb/adodb-active-record.inc.php @@ -1,7 +1,7 @@ RecordCount() is used. diff --git a/lib/adodb/datadict/datadict-access.inc.php b/lib/adodb/datadict/datadict-access.inc.php index 5032498641e..0d2f36b2c78 100644 --- a/lib/adodb/datadict/datadict-access.inc.php +++ b/lib/adodb/datadict/datadict-access.inc.php @@ -1,7 +1,7 @@ $_COLONSZ) return $p; + global $_COLONARR, $_COLONSZ; + $v = (integer) substr($p[1], 1); + if ($v > $_COLONSZ) return $p[1]; $_COLONARR[] = $v; return '?'; } +/** + * smart remapping of :0, :1 bind vars to ? ? + * @param string $sql SQL statement + * @param array $arr parameters + * @return array + */ function _colonscope($sql,$arr) { global $_COLONARR,$_COLONSZ; @@ -38,7 +49,7 @@ global $_COLONARR,$_COLONSZ; $_COLONARR = array(); $_COLONSZ = sizeof($arr); - $sql2 = preg_replace_callback('/(:[0-9]+)/', create_function('$m', 'return _colontrack($m[0]);'), $sql); + $sql2 = preg_replace_callback('/(:[0-9]+)/', '_colontrack', $sql); if (empty($_COLONARR)) return array($sql,$arr); diff --git a/lib/adodb/drivers/adodb-fbsql.inc.php b/lib/adodb/drivers/adodb-fbsql.inc.php index 646eb5289e3..b28feb6cf54 100644 --- a/lib/adodb/drivers/adodb-fbsql.inc.php +++ b/lib/adodb/drivers/adodb-fbsql.inc.php @@ -1,6 +1,6 @@ lastQuery = false; - return ifx_close($this->_connectionID); + if($this->_connectionID) { + return ifx_close($this->_connectionID); + } + return true; } } @@ -490,7 +493,10 @@ class ADORecordset_informix72 extends ADORecordSet { is running. All associated result memory for the specified result identifier will automatically be freed. */ function _close() { - return ifx_free_result($this->_queryID); + if($this->_queryID) { + return ifx_free_result($this->_queryID); + } + return true; } } diff --git a/lib/adodb/drivers/adodb-ldap.inc.php b/lib/adodb/drivers/adodb-ldap.inc.php index 86c705d7e9f..2839441cea6 100644 --- a/lib/adodb/drivers/adodb-ldap.inc.php +++ b/lib/adodb/drivers/adodb-ldap.inc.php @@ -1,6 +1,6 @@ _queryID); - $this->_queryID = false; - return $rez; + if($this->_queryID) { + $rez = mssql_free_result($this->_queryID); + $this->_queryID = false; + return $rez; + } + return true; } + // mssql uses a default date like Dec 30 2000 12:00AM static function UnixDate($v) { diff --git a/lib/adodb/drivers/adodb-mssql_n.inc.php b/lib/adodb/drivers/adodb-mssql_n.inc.php index c9163b5fbd5..2bbac5b2892 100644 --- a/lib/adodb/drivers/adodb-mssql_n.inc.php +++ b/lib/adodb/drivers/adodb-mssql_n.inc.php @@ -53,11 +53,6 @@ include_once(ADODB_DIR.'/drivers/adodb-mssql.inc.php'); class ADODB_mssql_n extends ADODB_mssql { var $databaseType = "mssql_n"; - function ADODB_mssqlpo() - { - ADODB_mssql::ADODB_mssql(); - } - function _query($sql,$inputarr=false) { $sql = $this->_appendN($sql); diff --git a/lib/adodb/drivers/adodb-mssqlnative.inc.php b/lib/adodb/drivers/adodb-mssqlnative.inc.php index ae5a11217b2..5d6b02b66c3 100644 --- a/lib/adodb/drivers/adodb-mssqlnative.inc.php +++ b/lib/adodb/drivers/adodb-mssqlnative.inc.php @@ -1,6 +1,6 @@ _queryID); - $this->_queryID = false; - return $rez; + if($this->_queryID) { + $rez = sqlsrv_free_stmt($this->_queryID); + $this->_queryID = false; + return $rez; + } + return true; } // mssql uses a default date like Dec 30 2000 12:00AM diff --git a/lib/adodb/drivers/adodb-mssqlpo.inc.php b/lib/adodb/drivers/adodb-mssqlpo.inc.php index faf25fc910e..d73324446f2 100644 --- a/lib/adodb/drivers/adodb-mssqlpo.inc.php +++ b/lib/adodb/drivers/adodb-mssqlpo.inc.php @@ -1,6 +1,6 @@ fields = mysql_fetch_array($this->_queryID,$this->fetchMode)) { + $this->_updatefields(); $this->_currentRow += 1; return true; } diff --git a/lib/adodb/drivers/adodb-mysqli.inc.php b/lib/adodb/drivers/adodb-mysqli.inc.php index 37937a02ca4..a3b9ea8879b 100644 --- a/lib/adodb/drivers/adodb-mysqli.inc.php +++ b/lib/adodb/drivers/adodb-mysqli.inc.php @@ -1,6 +1,6 @@ _currentRow++; $this->fields = @mysqli_fetch_array($this->_queryID,$this->fetchMode); - if (is_array($this->fields)) return true; + if (is_array($this->fields)) { + $this->_updatefields(); + return true; + } $this->EOF = true; return false; } @@ -1050,11 +1053,15 @@ class ADORecordSet_mysqli extends ADORecordSet{ //if results are attached to this pointer from Stored Proceedure calls, the next standard query will die 2014 //only a problem with persistant connections - while (@mysqli_more_results($this->connection->_connectionID)) { - @mysqli_next_result($this->connection->_connectionID); + if($this->connection->_connectionID) { + while(mysqli_more_results($this->connection->_connectionID)){ + mysqli_next_result($this->connection->_connectionID); + } } - @mysqli_free_result($this->_queryID); + if($this->_queryID) { + mysqli_free_result($this->_queryID); + } $this->_queryID = false; } diff --git a/lib/adodb/drivers/adodb-mysqlpo.inc.php b/lib/adodb/drivers/adodb-mysqlpo.inc.php index 8078a521a5e..fe7ef11e54a 100644 --- a/lib/adodb/drivers/adodb-mysqlpo.inc.php +++ b/lib/adodb/drivers/adodb-mysqlpo.inc.php @@ -1,7 +1,7 @@ adodb AdoDB BSD/GPL - 5.20.1 + 5.20.3 2.1+