summaryrefslogtreecommitdiff
path: root/adodb.inc.php
diff options
context:
space:
mode:
authorDamien Regad <dregad@mantisbt.org>2021-08-17 01:08:57 +0200
committerDamien Regad <dregad@mantisbt.org>2021-08-17 01:08:57 +0200
commit2595a935bc272a451595d27939ba4aaddc4ee68e (patch)
treed5455991ea11e61648ccefb352ebd6a3eb6ccd21 /adodb.inc.php
parentd558d101c514beeb8c91f65ae61d106b201dc472 (diff)
downloadadodb-2595a935bc272a451595d27939ba4aaddc4ee68e.tar.gz
adodb-2595a935bc272a451595d27939ba4aaddc4ee68e.tar.bz2
adodb-2595a935bc272a451595d27939ba4aaddc4ee68e.zip
Redo Merge tag 'v5.21.1'
# Conflicts: # adodb.inc.php # docs/changelog.md # drivers/adodb-mssqlnative.inc.php # drivers/adodb-mysqli.inc.php Fixes #751
Diffstat (limited to 'adodb.inc.php')
-rw-r--r--adodb.inc.php33
1 files changed, 20 insertions, 13 deletions
diff --git a/adodb.inc.php b/adodb.inc.php
index 15a3da97..ea971b8a 100644
--- a/adodb.inc.php
+++ b/adodb.inc.php
@@ -198,7 +198,7 @@ if (!defined('_ADODB_LAYER')) {
/**
* ADODB version as a string.
*/
- $ADODB_vers = 'v5.21.1-dev Unreleased';
+ $ADODB_vers = 'v5.22.0-dev Unreleased';
/**
* Determines whether recordset->RecordCount() is used.
@@ -3829,7 +3829,8 @@ class ADORecordSet implements IteratorAggregate {
*/
var $_numOfRows = -1; /** number of rows, or -1 */
var $_numOfFields = -1; /** number of fields in recordset */
- var $_queryID = -1; /** This variable keeps the result link identifier. */
+ /** @var resource result link identifier */
+ var $_queryID = -1;
var $_currentRow = -1; /** This variable keeps the current row in the Recordset. */
var $_closed = false; /** has recordset been closed */
var $_inited = false; /** Init() should only be called once */
@@ -3848,6 +3849,12 @@ class ADORecordSet implements IteratorAggregate {
/**
+ * @var ADOFieldObject[] Field metadata cache
+ * @see fieldTypesArray()
+ */
+ protected $fieldObjectsCache;
+
+ /**
* Constructor
*
* @param resource|int $queryID Query ID returned by ADOConnection->_query()
@@ -4679,15 +4686,16 @@ class ADORecordSet implements IteratorAggregate {
}
/**
- * Get Field metadata for of a specific column.
+ * Get a Field's metadata from database.
+ *
+ * Must be defined by child class.
*
- * @param fieldoffset is the column position to access(0-based).
+ * @param int $fieldOffset
*
- * @return ADOFieldObject|false for that column, or false.
+ * @return ADOFieldObject|false
*/
- function fetchField($fieldoffset = -1) {
- // must be defined by child class
-
+ function fetchField($fieldOffset)
+ {
return false;
}
@@ -4697,13 +4705,12 @@ class ADORecordSet implements IteratorAggregate {
* @return ADOFieldObject[]
*/
function fieldTypesArray() {
- static $arr = array();
- if (empty($arr)) {
- for ($i=0, $max=$this->_numOfFields; $i < $max; $i++) {
- $arr[] = $this->FetchField($i);
+ if (empty($this->fieldObjectsCache)) {
+ for ($i = 0; $i < $this->_numOfFields; $i++) {
+ $this->fieldObjectsCache[] = $this->fetchField($i);
}
}
- return $arr;
+ return $this->fieldObjectsCache;
}
/**