On 2 Dec 2004 12:06:35 -0800,
wilson@cpuworks.com (Mark Wilson CPU) wrote:
[color=blue]
>A colleague has written a prototype program in PHP, using a MySQL
>database.
>It's a relatively simple app, with a restricted set of mysql commands
>used (see below). The MySQL DB is being replaced with an Oracle DB
>(same schema). My plan
>1) globally replace the few mysql commands with intermediate
>equivalents (such as myDB_connect for mysql_connect)
>2) those central functions would then (for now) call the original
>mysql function to prove the code still works
>3) replace the "innards" of the myDB_ commands with calls to the
>Oracle equivalent, including connecting to the new DB
>4) make sure it all still works!
>
>Can someone provide me an equivalency for these in Oracle? Or, where
>an equivalent is not available, a reasonable alternative
>command/procedure? Thanks.
>
>Commands used:
>
>mysql_connect("localhost", "username", "userpass")
>mysql_error();
>mysql_select_db();
>$arry = mysql_query($query)
>$var = mysql_fetch_row($arry)
>$numvars = mysql_num_rows( $ varsarry )
>mysql_data_seek( $arry, $day )
>$line = mysql_fetch_array($result, MYSQL_ASSOC)
>$currdata = mysql_fetch_assoc( $currentarray )[/color]
The Oracle extension (oci8) is documented here:
http://uk.php.net/oci8
You may find it worthwhile using a database abstraction layer; I rather like
ADOdb.
http://adodb.sourceforge.net/
Changing the functions is definitely not the only thing you need to change; if
you treat Oracle as if it were MySQL you'll be in for some nasty surprises, and
if you have a DBA he'll probably start throwing things at you.
The main differences are probably the transaction/concurrency/locking model,
that you should use bind variables and not stuff values into SQL
There is no direct equivalent for mysql_num_rows or mysql_data_seek, as PHP
doesn't support Oracle scrollable cursors. If you want to emulate these
functions, you have to fetch the whole result set as an array first (which is
what MySQL does internally by default - unless you're using 'unbuffered
queries').
--
Andy Hassall / <andy@andyh.co.uk> / <http://www.andyh.co.uk>
<http://www.andyhsoftware.co.uk/space> Space: disk usage analysis tool