ADOdb

Database Abstraction Layer for PHP

User Tools

Site Tools


v5:reference:adodb_assoc_case

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
reference:adodb_assoc_case [2015/09/07 03:48] mnewnhamv5:reference:adodb_assoc_case [2022/06/08 16:14] (current) – [Usage] fix code samples to reflect correct initialization of ADODB_ASSOC_CASE dregad
Line 1: Line 1:
-====== ADODB_ASSOC_CASE =====+====== ADODB_ASSOC_CASE ======
 ~~NOTOC~~ ~~NOTOC~~
-<WRAP right info 300px> 
-== See Also == 
-[[dictionary:setmetacaseoption|metaCasing]] 
-== Note == 
-As of version ADOdb 6.0, ADODB_ASSOC_CASE is deprecated. Its functionality is replaced by the more controllable ''metaCasing'' options. 
-</WRAP>  
-You can control the associative fetch case for certain drivers which behave differently. For the [[driver:sybase]], [[driver:oci8po]], [[driver:mssql]], [[driver:odbc]] and [[driver:ibase]] drivers and all drivers derived from them, ADODB_ASSOC_CASE will by default generate recordsets where the field name keys are lower-cased. Use the constant ADODB_ASSOC_CASE to change the case of the keys. There are 3 possible values: 
  
-The constant must be declared **before** including  adodb.inc.php+When returning data in **associative //[[v5:reference:connection:setfetchmode|fetch mode]]//**, the ''ADODB_ASSOC_CASE'' constant gives control over the casing of the retrieved recordsets' fields
  
-===== Constants =====+It must be declared **before** initializing the database connection with [[v5:reference:connection:adonewconnection|ADONewConnection()]]. 
 +Being a constant, it is of course not possible to change its value later on. 
 + 
 +Note that this setting has no effect on the casing of the actual data. 
 + 
 +<WRAP info> 
 +Until ADOdb 5.20.14, the documentation contained several references to a global variable named ''$ADODB_ASSOC_CASE'', which was only used in [[v5:activerecord:activerecord_index]], but in an inconsistent manner.  
 + 
 +**As of 5.20.15, the only supported method to set fields case is the ''ADODB_ASSOC_CASE'' constant.** 
 +</WRAP> 
 + 
 +===== Possible values =====
 ^Name^Value^Description^ ^Name^Value^Description^
 |ADODB_ASSOC_CASE_LOWER|0|lowercase field names| |ADODB_ASSOC_CASE_LOWER|0|lowercase field names|
 |ADODB_ASSOC_CASE_UPPER|1|uppercase field names|  |ADODB_ASSOC_CASE_UPPER|1|uppercase field names| 
-|ADODB_ASSOC_CASE_NATIVE (Default)|2|use native-case field names|+|ADODB_ASSOC_CASE_NATIVE (Default)|2|native-case field names| 
 + 
 +With the default behavior, ''ADODB_ASSOC_CASE_NATIVE'', ADOdb does not perform any transformation on field names, and returns them exactly as they are defined by the DBMS.  
 + 
 +<WRAP tip> 
 +When writing portable code, it is strongly recommended to choose either upper or lower case.  
 +Relying on the native case default will likely cause compatibility issues, as there is no consistent casing across databases and some DBMS may returned mixed-case keys. 
 +</WRAP>
  
 ===== Usage ===== ===== Usage =====
 <code php> <code php>
-DEFINE(ADODB_ASSOC_CASE,0); +require "adodb.inc.php"
-require "adodb/adodb.inc.php";+define('ADODB_ASSOC_CASE', ADODB_ASSOC_CASE_LOWER); 
 +$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
  
-/* +$db = ADONewConnection('mysql'); 
- * connection assumed +$db->connect($host, $user, $password, $database); 
-*/+ 
 +print_r($db->getAll("SELECT accountNo, accountName FROM table")); 
 + 
 +/* Response is:
  
-$SQL = "SELECT accountNo,accountName FROM table"; 
-$data = $db->getAll($SQL); 
-print_r($data); 
-/* 
- * Response is: 
  [0]=>array('accountno'=>1,  [0]=>array('accountno'=>1,
             'accountname'=>'The First Account'             'accountname'=>'The First Account'
Line 37: Line 47:
             'accountname'=>'The Second Account'             'accountname'=>'The Second Account'
             )             )
-            )            
- 
 */ */
 </code> </code>
  
 or: or:
 +
 <code php> <code php>
-DEFINE(ADODB_ASSOC_CASE,1); +require "adodb.inc.php"
-require "adodb/adodb.inc.php";+define('ADODB_ASSOC_CASE', ADODB_ASSOC_CASE_UPPER); 
 +$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
  
-/* +$db = ADONewConnection('mysql'); 
- * connection assumed +$db->connect($host, $user, $password, $database); 
-*/+ 
 +print_r($db->getAll("SELECT accountNo, accountName FROM table")); 
 + 
 +/* Response is:
  
-$SQL = "SELECT accountNo,accountName FROM table"; 
-$data = $db->getAll($SQL); 
-print_r($data); 
-/* 
- * Response is: 
  [0]=>array('ACCOUNTNO'=>1,  [0]=>array('ACCOUNTNO'=>1,
             'ACCOUNTNAME'=>'The First Account'             'ACCOUNTNAME'=>'The First Account'
Line 62: Line 70:
             'ACCOUNTNAME'=>'The Second Account'             'ACCOUNTNAME'=>'The Second Account'
             )             )
-            )            
- 
 */ */
 </code> </code>
Line 70: Line 76:
  
 <code php> <code php>
-DEFINE(ADODB_ASSOC_CASE,3); +require "adodb.inc.php"
-require "adodb/adodb.inc.php";+define('ADODB_ASSOC_CASE', ADODB_ASSOC_CASE_NATIVE); 
 +$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
  
-/* +$db = ADONewConnection('mysql'); 
- * connection assumed +$db->connect($host, $user, $password, $database); 
-*/+ 
 +print_r($db->getAll("SELECT accountNo, accountName FROM table")); 
 + 
 +/* Response is:
  
-$SQL = "SELECT accountNo,accountName FROM table"; 
-$data = $db->getAll($SQL); 
-print_r($data); 
-/* 
- * Response is: 
  [0]=>array('accountNo'=>1,  [0]=>array('accountNo'=>1,
             'accountName'=>'The First Account'             'accountName'=>'The First Account'
Line 88: Line 93:
             'accountName'=>'The Second Account'             'accountName'=>'The Second Account'
             )             )
-            )            
- 
 */ */
 </code> </code>
v5/reference/adodb_assoc_case.1441590512.txt.gz · Last modified: 2017/04/21 11:32 (external edit)