====== ADODB_ASSOC_CASE ====== ~~NOTOC~~ 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. 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. 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.** ===== Possible values ===== ^Name^Value^Description^ |ADODB_ASSOC_CASE_LOWER|0|lowercase field names| |ADODB_ASSOC_CASE_UPPER|1|uppercase 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. 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. ===== Usage ===== require "adodb.inc.php"; define('ADODB_ASSOC_CASE', ADODB_ASSOC_CASE_LOWER); $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC; $db = ADONewConnection('mysql'); $db->connect($host, $user, $password, $database); print_r($db->getAll("SELECT accountNo, accountName FROM table")); /* Response is: [0]=>array('accountno'=>1, 'accountname'=>'The First Account' ), [1]=>array('accountno'=>2, 'accountname'=>'The Second Account' ) */ or: require "adodb.inc.php"; define('ADODB_ASSOC_CASE', ADODB_ASSOC_CASE_UPPER); $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC; $db = ADONewConnection('mysql'); $db->connect($host, $user, $password, $database); print_r($db->getAll("SELECT accountNo, accountName FROM table")); /* Response is: [0]=>array('ACCOUNTNO'=>1, 'ACCOUNTNAME'=>'The First Account' ), [1]=>array('ACCOUNTNO'=>2, 'ACCOUNTNAME'=>'The Second Account' ) */ or: require "adodb.inc.php"; define('ADODB_ASSOC_CASE', ADODB_ASSOC_CASE_NATIVE); $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC; $db = ADONewConnection('mysql'); $db->connect($host, $user, $password, $database); print_r($db->getAll("SELECT accountNo, accountName FROM table")); /* Response is: [0]=>array('accountNo'=>1, 'accountName'=>'The First Account' ), [1]=>array('accountNo'=>2, 'accountName'=>'The Second Account' ) */