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+