summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Regad <dregad@mantisbt.org>2015-12-27 20:18:53 +0100
committerDamien Regad <dregad@mantisbt.org>2015-12-27 20:18:53 +0100
commit93164fe0f8d539200ac9c179aad65770371b09d1 (patch)
tree7c884f6ef1985ce4459b9f93b4964124cd3a0abe
parent3d83c0c3b99e0a1b6b847ab129fb24242f53b8d3 (diff)
parent3dbf2fbc066757505adf37036558b126a1d2b3e8 (diff)
downloadadodb-93164fe0f8d539200ac9c179aad65770371b09d1.tar.gz
adodb-93164fe0f8d539200ac9c179aad65770371b09d1.tar.bz2
adodb-93164fe0f8d539200ac9c179aad65770371b09d1.zip
Merge branch 'hotfix/5.20.2'
-rw-r--r--docs/changelog.md6
-rw-r--r--drivers/adodb-db2ora.inc.php19
-rw-r--r--drivers/adodb-informix72.inc.php10
-rw-r--r--drivers/adodb-mssql.inc.php9
-rw-r--r--drivers/adodb-mssql_n.inc.php5
-rw-r--r--drivers/adodb-mssqlnative.inc.php4
-rw-r--r--drivers/adodb-mysql.inc.php1
-rw-r--r--drivers/adodb-mysqli.inc.php15
-rw-r--r--drivers/adodb-mysqlt.inc.php5
9 files changed, 50 insertions, 24 deletions
diff --git a/docs/changelog.md b/docs/changelog.md
index f0e1a72f..8d759040 100644
--- a/docs/changelog.md
+++ b/docs/changelog.md
@@ -8,6 +8,12 @@ Older changelogs:
## 5.21.0 - ??-???-2015
+## 5.20.2 - 27-Dec-2015
+
+- adodb: Remove a couple leftover PHP 4.x constructors (PHP7 compatibility). #139
+- mysql: MoveNext() now respects ADODB_ASSOC_CASE. #167
+- mssql, mysql, informix: Avoid PHP warning when closing recordset from destructor. #170
+
## 5.20.1 - 06-Dec-2015
- adodb: Fix regression introduced in 5.20.0, causing a PHP Warning when
diff --git a/drivers/adodb-db2ora.inc.php b/drivers/adodb-db2ora.inc.php
index c744bbd0..1a5b1620 100644
--- a/drivers/adodb-db2ora.inc.php
+++ b/drivers/adodb-db2ora.inc.php
@@ -22,15 +22,26 @@ if (!defined('ADODB_DB2OCI')){
define('ADODB_DB2OCI',1);
+/**
+ * Callback function for preg_replace in _colonscope()
+ * @param array $p matched patterns
+ * return string '?' if parameter replaced, :N if not
+ */
function _colontrack($p)
{
-global $_COLONARR,$_COLONSZ;
- $v = (integer) substr($p,1);
- if ($v > $_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("/(:[0-9]+)/e","_colontrack('\\1')",$sql);
+ $sql2 = preg_replace_callback('/(:[0-9]+)/', '_colontrack', $sql);
if (empty($_COLONARR)) return array($sql,$arr);
diff --git a/drivers/adodb-informix72.inc.php b/drivers/adodb-informix72.inc.php
index 8e1872a0..e7f0c035 100644
--- a/drivers/adodb-informix72.inc.php
+++ b/drivers/adodb-informix72.inc.php
@@ -378,7 +378,10 @@ class ADODB_informix72 extends ADOConnection {
function _close()
{
$this->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/drivers/adodb-mssql.inc.php b/drivers/adodb-mssql.inc.php
index 003fde67..198929b2 100644
--- a/drivers/adodb-mssql.inc.php
+++ b/drivers/adodb-mssql.inc.php
@@ -1060,10 +1060,13 @@ class ADORecordset_mssql extends ADORecordSet {
function _close()
{
- $rez = mssql_free_result($this->_queryID);
- $this->_queryID = false;
- return $rez;
+ if($this->_queryID) {
+ $this->_queryID = false;
+ return mssql_free_result($this->_queryID);
+ }
+ return true;
}
+
// mssql uses a default date like Dec 30 2000 12:00AM
static function UnixDate($v)
{
diff --git a/drivers/adodb-mssql_n.inc.php b/drivers/adodb-mssql_n.inc.php
index 95e0d71c..d1768571 100644
--- a/drivers/adodb-mssql_n.inc.php
+++ b/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/drivers/adodb-mssqlnative.inc.php b/drivers/adodb-mssqlnative.inc.php
index b83f7f06..1dcc1961 100644
--- a/drivers/adodb-mssqlnative.inc.php
+++ b/drivers/adodb-mssqlnative.inc.php
@@ -1089,7 +1089,9 @@ class ADORecordset_mssqlnative extends ADORecordSet {
*/
function _close()
{
- $rez = sqlsrv_free_stmt($this->_queryID);
+ if($this->_queryID) {
+ $rez = sqlsrv_free_stmt($this->_queryID);
+ }
$this->_queryID = false;
return $rez;
}
diff --git a/drivers/adodb-mysql.inc.php b/drivers/adodb-mysql.inc.php
index 883aa3dd..773349a8 100644
--- a/drivers/adodb-mysql.inc.php
+++ b/drivers/adodb-mysql.inc.php
@@ -797,6 +797,7 @@ class ADORecordSet_mysql extends ADORecordSet{
//return adodb_movenext($this);
//if (defined('ADODB_EXTENSION')) return adodb_movenext($this);
if (@$this->fields = mysql_fetch_array($this->_queryID,$this->fetchMode)) {
+ $this->_updatefields();
$this->_currentRow += 1;
return true;
}
diff --git a/drivers/adodb-mysqli.inc.php b/drivers/adodb-mysqli.inc.php
index bffbc5d3..38979229 100644
--- a/drivers/adodb-mysqli.inc.php
+++ b/drivers/adodb-mysqli.inc.php
@@ -1042,7 +1042,10 @@ class ADORecordSet_mysqli extends ADORecordSet{
$this->_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;
}
@@ -1059,11 +1062,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/drivers/adodb-mysqlt.inc.php b/drivers/adodb-mysqlt.inc.php
index 458fae92..10549c66 100644
--- a/drivers/adodb-mysqlt.inc.php
+++ b/drivers/adodb-mysqlt.inc.php
@@ -130,11 +130,6 @@ class ADORecordSet_mysqlt extends ADORecordSet_mysql{
class ADORecordSet_ext_mysqlt extends ADORecordSet_mysqlt {
- function ADORecordSet_ext_mysqlt($queryID,$mode=false)
- {
- parent::__construct($queryID,$mode);
- }
-
function MoveNext()
{
return adodb_movenext($this);