====== setFetchMode ======
~~NOTOC~~
If you have multiple connection objects, and want to have different fetch modes for each connection, then use SetFetchMode. Once this function is called for a connection object, that connection object will ignore the global variable ''$ADODB_FETCH_MODE'' and will use the internal fetchMode property exclusively.
== Syntax ==
int setFetchMode(
optional int $fetchMode
)
== See Also ==
[[v5:reference:$ADODB_FETCH_MODE]]\\
[[v5:reference:connection:getFetchMode()]]\\
==== Use as a getter ====
Use setFetchMode()
without an argument to return the current fetch mode
----------------------------------
==== Constants ====
^ Name ^ Value ^ Description ^
| ADODB_FETCH_DEFAULT | 0 | The recordset is returned in the default provided by the PHP driver. Use of this value is not recommended if writing cross-database applications |
| ADODB_FETCH_NUM | 1 | The recordset is returned as a numeric array |
| ADODB_FETCH_ASSOC | 2 | The recordset is returned as an associative array |
| ADODB_FETCH_BOTH | 3 | The record is returned as both a numeric and associative arrays. This option is not supported by all databases |
===== Usage =====
$db->setFetchMode(ADODB_FETCH_NUM);
$rs1 = $db->execute('select * from table');
$db->setFetchMode(ADODB_FETCH_ASSOC)
$rs2 = $db->execute('select * from table');
print_r($rs1->fields);
/*
shows _array([0]=>'v0',
[1] =>'v1')
*/
print_r($rs2->fields);
/*
* shows _array(['col1']=>'v0',
['col2'] =>'v1')
*/
====== Fetch Both =====
Some databases support a 'Fetch Both' mode, which can be set using ''ADODB_FETCH_MODE''. In this mode, the recordset contains data as both a numeric and an associative array, interspersed.
$db->setFetchMode(ADODB_FETCH_BOTH)
$rs3 = $db->execute('select * from table');
print_r($rs3->fields);
/*
shows _array([0]=>'v0',
['col1']=>'v0',
[1] =>'v1',
['col2']=>'v1'
)
*/