PIXEL FACEBOOK

Conectar PHP con Oracle 11g

reiniciar apache

Conectar PHP con Oracle 11g

Últimamente he estado trabajando en un proyecto en el cual es necesario que sea escalable en cuanto a la conexión a base de datos y uso en terminales. Hablo de escalabilidad ya que la aplicación debe de conectarse con MySQL y Oracle conPHP, con la primer Database no hay problema ya que PHP trabaja bastante bien con MySQL, pero con Oracle se debe de realizar cierto proceso para poder trabajar con las funciones de PHP para Oracle. Lo que sigue es el resultado de mi experiencia sobre un servidor local, y con esto aprendi como Conectar PHP con Oracle 11g 😀

Lo primero que tenemos que hacer es comprobar si existe alguna extensión oci8, para buscamos esta cadena en el phpinfo():

extension oci8 Conectar PHP con Oracle 11g

Si encontramos alguna cadena después de la cadena oci8, como en la anterior imagen, solo bastara con modificar una linea y reiniciar el servidor local para que tome los cambios.

Para modificar el archivo iremos a la siguiente ubicación y lo editaremos el archivo con nuestra aplicación favorita para modificar archivos de texto plano:

phpini

Una vez abierto el archivo buscaremos la siguiente linea y eliminamos el » ; «, descomentando la linea para que pueda ser habilitada la libreria:

1
extension=php_oci8_11g.dll

oci8 oracle 11g

Solo nos queda reiniciar el servicio del Servidor Apache, así que paramos e iniciamos el servidor para que tome los cambios. Ojo, esto es importante!
reiniciar apache

Pero bueno, que tal que la versión que tengamos no tenga este soporte nativo para Oracle? Googleando encontré una solución para este problema.

Ahora mirando si nos funciona, crearemos una carpeta en nuestro servidor local, a nuestro gusto, y en ella el archivo que hará la conexión con el Servidor Oracle:

Ver Código

La linea 3 es la encargada de la conexión, esta consta del nombre de usuario, la contraseña, y host de Oracle. Recordemos que el host se puede manejar tanto por IP como por el nombre de la maquina.

Bueno, para finalizar, si todo sale bien podremos ver el siguiente resultado cuando abramos el archivo por el navegador web:

conexion php con oracle

Si te ha gustado el post, compártelo, regala un like ó comenta 😉

Artículos Relacionados

18 respuestas

  1. Buenas tardes

    tegno cliente oracle 9i y Acabo de solucionar el problema con la siguiente herramienta:
    wamp: http://www.wampserver.es/

    Se activa muy facil la OCI8 con solo un clic pero sino en el PHP.INI buscas extension=php_oci8.dll y le quitas el «;»

    Ojo no puedes usar extension=php_oci8.dll y extension=php_oci8_11g.dll al mismo tiempo

    Prueben con este string de conecion a base de datos remota:

    <?php
    $db_test = '(DESCRIPTION=( ADDRESS_LIST= (ADDRESS= (PROTOCOL=TCP) (HOST=XX.XXX.XXX.XXX) (PORT=1521)))( CONNECT_DATA= (SID=NOMBRE_BD) ))';
    $conn = oci_connect("USUSARIO", "CONTRASEÑA", $db_test);
    $query = oci_parse($conn,'SELECT CAMPO FROM TABLA order by 1 asc');
    oci_execute($query);
    while ($row = oci_fetch_array($query, OCI_ASSOC)) {
    foreach ($row as $item) {
    echo $item." «;
    }
    echo «\n»;
    }
    oci_free_statement($query);
    oci_close($conn);
    ?>

    Espero les sirva, creo que lei mas de 12 manuales y 56 paginas

  2. Hola a todos he regresado porque gracias a mi Dios todo poderoso pude resolver el problema de la conexión con oracle 11 g edicion de empresarial, les comento …. el tutorial es excelente solo falta unos detalles les explico camaradas, yo uso xampp para conectarme en su version 1.8.1 esta version me permite tener en el servidor php disponibles las extenciones 11 g que nesecitamos, lo que descomentamos en el archivo php.ini …. CORRECTO! yo tambien descomente la linea que dice extension = php_pdo_oci.dll……OJO!……………………….luego descargue el instan cliente 11g de 32 bits porque si se dan cuenta la version del servidor php que nos instala xampp es de 32 bits….OJO! no de 64 y ese era el problema yo uso w7 de 64 bits y descargaba el instan cliente 11 g de 64 por eso no levantaba la conexión…….UNA COSA MAS despues que desgarguen el cliente descomprimanlo en el directorio C:/instantclient_11_2 esta dirección deben agregarla a las variables de entorno del sistema despues reinician su pc y listo correra todo bien! Agradecimintos a Dios por favor que solo somos útiles si servimos a los demás.

  3. no mi amigo no me conecta, he seguido a pie de la letra las instrucciones he revisado todo y solo es la pinche conexión desde el servidor php que no levanta, agradeciera ayuda gracias por la atención.

  4. Muchas gracias por la información; hice el paso a paso, pero me saca el error: «Fatal error: Call to undefined function oci_connect() in C:xampphtdocsoracleoracle.php on line 3»

    No se si sean los datos de la base de datos, tengo la duda en la direccionServidor/SID

  5. Esta es mi linea 3 : $conn = oci_connect(«system», «654321», «localhost/xe»);

    pero me dice: Fatal error: Call to undefined function oci_connect() in C:\xampp\htdocs\conn\conexion.php on line 3

    Por favor , necesito resolver esto urgente :s

  6. Fatal error: Call to undefined function oci_connect() in C:\xampp\htdocs\prueba1.php on line 9
    no se mira

    conectaroracle();

    class basedatos{

    function conectaroracle(){
    $conn = oci_connect(«ufinal»,»123456″ ,»localhost»);

  7. Necesito ayuda. No puedo hacer la conexión a mi base de datos en oracle 11g con php 5.5.6.
    Todo esto lo tengo en un servidor local (mi lap) pero siempre me aparece el mismo error: Fatal error: Call to undefined function oci_connect() in C:xampphtdocsPruebasprueba.php on line 2.
    Ya tengo descomentada la liena en el php.ini y en la página del xammp del phpinfo me aprece igual que la captura de pantalla que esta al inicio de este post.
    Mi codigo: $connection=oci_connect(‘ELIEL’, ‘ELIEL’, ‘localhost/XE’);

    1. Hola amigo, disculpa la demora, pero las obligaciones que últimamente he tenido me han dejado sin tiempo 🙁 Primero, el orden de los datos en tu código estan bien, pero veo que no usas comillas dobles, sino sencillas. Usa las comillas dobles:

      1
      
      $connection=oci_connect("ELIEL", "ELIEL", "localhost/XE");

      Cualquier cosa me avisas a admin@jagonzalez.org Saludos.

      1. Compañero, a mi me aparece este error: Fatal error: Call to undefined function oci_connect() in C:xampphtdocsBullMarketprueba.php on line 3

        he hecho todo lo que dices, pero sigue sin funcionar.

  8. $conn = oci_connect(«pbelial», «talcosa», «localhost/electiva»);

    Pregunta: «pbelial» que lleva aqui

    «talcosa»

    «localhost/electiva» me podrias explicar,me encuentro desarrollandi un inventario en

    oracle y estoy detenido en esto, por tu atencion gracias.

    1. $conn = oci_connect(“pbelial”, “talcosa”, “localhost/electiva”);

      En el orden de ideas, seria: oci_connect( usuario, contraseña, direccionServidor/SID); Recuerda que estos datos son de tipo string, es por esto que en el ejemplo van entre comillas dobles, el SID es el identificador de tu base de datos en el servidor. Espero que con esto te quede mas claro 🙂

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Jenny Watson

Hi! beautiful people. I`m an authtor of this blog. Read our post – stay with us

Categorías

Artículos Relacionados

¡Descubre Hostinger, Crea tu Web y Empieza a Generar Presencia Online!

¿Buscas un hosting confiable y asequible para tu proyecto web? Hostinger te ofrece planes flexibles y potentes que se adaptan a tus necesidades. Desde sitios web personales hasta tiendas online, su tecnología de vanguardia garantiza un rendimiento excepcional.