Well, it's Oracle, it's Oracle and, by default, returns uppercase field names. Anyway, ADOdb can be forced to return lowercase fieldnames by executing:
define ('ADODB_ASSOC_CASE', 0);
BEFORE connection to DB.
Note that the define above is GLOBAL so it will affect ALL the ADOdb connections. So, if the script has executed another define() like that (with another value), the second one won't have effect.
And that's exactly the thing happening when auth_db_sync_users.php is executed (it calls config.php, that calls setup.php) and it executes the define, setting it to "2". That means "native", and native=uppercase in Oracle.
So, to be in the safe side... I think we must do one array_change_key_case() to convert every object to lowercase keys. That way, it should work in all DBs without being affected by the global define.
$dbrecord = (object)array_change_key_case((array)$dbrecord , CASE_LOWER);
for each record fetched. Note I haven't tested this under PHP 4.3.
I's some extra work but provides full cross-db. Saving us from the define() problems.