On 07/04/2003 08:38 PM, Reuben D. Budiardja wrote:
First let me say that I am not sure if this is PHP problem or Oracle. I posted this earlier in php-general, but after looking at the available mailing lists again, I thought this forum would be more appropriate. Sorry if someone get double post.
I have a class that contains API for using postgresql, mysql, or oracle database so switching database should be "in theory" just changing an argument for me. To make this sort, let just say that the return of a SELECT statement is always in associative array, using either :
"pg_fetch_assoc" for pgsql
"mysql_fetch_assoc" for mysql
"ocifetchinto" with OCI_ASSOC flag for Oracle 9
Now, pg_fetch_assoc and mysql_fetch_assoc return the associate array with the key in lower case. But ocifetchinto returns the key in UPPER case. So this discrepancy makes my code not as portable as I would like it. Furthermore, the example here:
doesn't even work, because it uses lower case as the associative array key.
Why is this the case? Is this PHP problem or Oracle config problem? Either way, can anyone suggest a solutions? Of course I can do all kind of array manipulation in my API to make the key lower case, but that wouldn't be very elegant and efficient
No, that is just the way Oracle returns column names. It is not possible to provide a portable solution to return row in associative arrays because not only the column names case may be mapped, removed the table names or even have the column names truncated.
That is the reason why Metabase never provided a function to return rows as associative arrays, as Metabase is focused on real database application portability.
Regards, Manuel Lemos
Free ready to use OOP components written in PHP http://www.phpclasses.org/
-- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php