Foros del Web » Programando para Internet » PHP »

PHP+MySQL a PHP+Oracle

Estas en el tema de PHP+MySQL a PHP+Oracle en el foro de PHP en Foros del Web. Hola amigos, tengo un gran problema: 1) Tengo un sitio web programado en PHP con una base de datos en MySQL. 2) Mi cliente tiene ...
  #1 (permalink)  
Antiguo 12/12/2003, 07:16
 
Fecha de Ingreso: julio-2003
Ubicación: Madrid
Mensajes: 17
Antigüedad: 14 años, 5 meses
Puntos: 0
PHP+MySQL a PHP+Oracle

Hola amigos, tengo un gran problema:

1) Tengo un sitio web programado en PHP con una base de datos en MySQL.

2) Mi cliente tiene Servidores Web IPlanet 6 unidos a servidores de aplicaciones JRun4 sobre sistema operativo Solaris (o sea, que puede correr PHP sin problemas según ellos) conectado con otro servidor con Windows NT que tiene la base de datos Oracle 8.i.

La pregunta es sencilla, como hacer que lo mio funcione con lo suyo, es decir, como cambio mi conexion a la base de datos MySQL para que ahora mis paginas funcionen en su servidor con Oracle, claro que suponiendo que ellos tienen las mismas tablas y campos en su bases de datos oracle, como hago ese "switch"?

Necesito explicarselo a la programadora de mi cliente que no es muy "habil", asi que tiene que ser a prueba de "no habiles".


Mil gracias. Saludos.
  #2 (permalink)  
Antiguo 12/12/2003, 14:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Bueno .. en principio no es cosa sólo de "pegar el cambiazo" a tu conexión .. en tus aplicaciones PHP .. Si no usuastes alguna capa de abastracción de BD como ADOdb o cualquier otra que acepta Mysql y Oracle (entre otras) .. vas a tener que cambiar todo el código que haga referencia a funciones mysql_xxx() por las oci8_xxx() ...

Y luego está el tema del própo SQL en sí .. cosas que haces en Mysql no son iguales en el SQL de Oracle .. un ejemplo el famoso "LIMIT" de Mysql no existe en Oracle (existen sus equivalentes) .. Y las subconsultas que "simulas" en SQL de Mysql en Oracle son soportadas "nativamente" ..

Lo ideal para estos casos es desarrollar PHP y acceso a tus BD con alguna capa de abstracción de BD que permita usar bajo tu misma programación Mysql .. Oracle u otras BD (siempre y cuando uses SQL lo más standard posible .. o los métodos que use la classe en concreto (capa de abastracción de BD).)

A nivel de instalación .. PHP le hace falta que instales la extensión para Oracle (funciones OCI8 ..) y que el servidor corra un cliente de Oracle para la versión y S.O. que use ..

mas info sobre esto:
www.php.net/oracle

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 15/12/2003, 10:51
 
Fecha de Ingreso: julio-2003
Ubicación: Madrid
Mensajes: 17
Antigüedad: 14 años, 5 meses
Puntos: 0
Hola Cluster, gracias por tu respuesta, llevo tiempo programando pero no habia trabajado con BD Oracle, al menos no con esta problematica de la migracion, te voy a explicar resumidamente como esta la cosa:

Tengo un archivo de conexion, que usan todas las paginas PHP, que contiene:

<?
// Datos Conexión a la Base de Datos

$sql_host="abc.servidores.net";
$sql_usuario="123";
$sql_clave="456";
$sql_db="789";
$sql_tabla="usuarios";

// Conexión a la Base de datos y tabla de usuarios

$db_conexion= mysql_connect("$sql_host", "$sql_usuario", "$sql_clave");
mysql_select_db("$sql_db");

?>

Luego dentro de cada página que lo necesite mando a llamar el archivo que contiene estas lineas anteriores. Fuera de esto no uso más que SELECT, INSERT INTO, etc. que lo mas complejo que tiene es un WHERE o un ORDER BY. No uso ningun LIMIT ni operaciones de ninguna otra clase. Por ejemplo uso:

----
$result = mysql_query("SELECT * FROM hoy ORDER BY fecha");
$total = mysql_num_rows($result);
----
$result = mysql_query("SELECT * FROM hoy WHERE ($tipo LIKE '%$criterio%') ORDER BY fecha");
----
$qr = "insert into hoy (titulo,subtitulo) values ('$titulo','$subtitulo')";
----

Del resto no es nada mas complejo que el ejemplo. Sobre lo que haya que instalarle a PHP para que use Oracle ya habia leido algo de eso, si puedes decirme que deberia tener que instalarle a los servidores JRun la persona encargada te lo agradecere un monton.

Un saludo,
Victor.
  #4 (permalink)  
Antiguo 15/12/2003, 11:25
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Sobre lo que hay que instalar a PHP para que puedas usar tu las funciones de acceso a Oracle tipo oci8_xxx() y sustituir (casi) las que tienes de mysql_xxx() .. dile a la persona encargada que se lea el LINK que dejé del manual oficial de PHP. Debe instalar esa extensión y correr en Linux los clientes de Oracle.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 16/12/2003, 05:18
 
Fecha de Ingreso: julio-2003
Ubicación: Madrid
Mensajes: 17
Antigüedad: 14 años, 5 meses
Puntos: 0
Hola Cluster, lo que decidi es instalar Oracle y hacer un par de pruebas yo mismo antes de enviarselo a esa persona, asi cambio yo las funciones mysql_xxx() por las oci8_xxx() y se le complica menos, pero todavia me quedaria una duda por resolver, y es como hacer la conexion.

Es decir, tengo IIS 5.1 en Windows XP Professional, con PHP 4.3.4 instalado y funcionando, estoy instalando Oracle 8i Personal Edition 8.1.7.0.0, la pregunta es "luego que?", o sea se como hacer todas las operaciones de incluir, modificar, eliminar y consultar la base de datos, pero como hago la conexion a mi nueva base de datos en Oracle, para MySQL yo usaba:

<?
// Datos Conexión a la Base de Datos

$sql_host="127.0.0.1";
$sql_usuario="123";
$sql_clave="456";
$sql_db="789";
$sql_tabla="usuarios";

// Conexión a la Base de datos y tabla de usuarios

$db_conexion= mysql_connect("$sql_host", "$sql_usuario", "$sql_clave");
mysql_select_db("$sql_db");

?>

y ahora que uso para cambiar esto para que se conecte a oracle?
y si necesito la DLL que mencionas o algo mas para PHP de donde lo saco y como se instala?

De verdad mil de gracias por hecharme una mano con esto.

Saludos.
Victor.
  #6 (permalink)  
Antiguo 16/12/2003, 07:01
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Tienes un par de tutoriales en:

http://www.phpbuilder.com/columns/in...cat=1&subcat=5

Espero que te ayuden. Y .. por supuesto te hará falta conocer el SQL particular de Oracle .. que como ya comenté a nivel básico será igual (o casi) pero puede cambiar en algunos aspectos.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 11:37.