Blog | Gestión de datos | | 2 min de lectura

Conexión a una base de datos Actian Ingres desde PHP a través de JDBC

x con luz detrás para actian x

Hemos documentado la mejor forma de conectarse desde PHP a una base de datos Ingres a través de ODBC en un artículo de la Base de Conocimientos de Actian titulado «Ingres ODBC con PHP»y en una entrada anterior, «Conexión a Actian Ingres con PHP y NGINX». Sin embargo, en ocasiones, debido a ciertas limitaciones, es posible que los usuarios tengan que utilizar JDBC en lugar de ODBC para conectarse. En esta entrada se explica cómo hacerlo, aunque no existe soporte nativo para conectarse a través de JDBC utilizando PHP.

En esta situación, es necesario utilizar un puente PHP-JDBC. Para este ejemplo, vamos a utilizar el puente disponible en PHP-JDBC Bridge.

Comprobar la conectividad JDBC

Esto supone que se puede establecer una conexión JDBC. Si puedes ejecutar consultas desde un pequeño programa de prueba en Java utilizando JDBC, entonces puedes pasar al siguiente paso.

Configuración y puesta en marcha del servicio Bridge

Consulta la documentación de PHP_JDBC (disponible en PHP-JDBC Bridge) para saber cómo instalar las herramientas necesarias y ejecutar el servicio. A continuación se muestra un ejemplo de cómo se ejecutaría:

java -cp «lib/pjbridge.jar:lib/commons-daemon-1.1.0.jar:$II_SYSTEM/ingres/lib/:$II_SYSTEM/ingres/lib/iijdbc.jar»
   Servidor com.ingres.jdbc.IngresDriver 4444 &

Ejemplo de código PHP

A continuación se muestra un ejemplo de código PHP para conectarse a la base de datos Ingres:

<?php
   require "PJBridge.php"; 

   $dbHost = "localhost";
   $dbName = "testdb";
   $dbPort = "II7";
   $dbUser = "test_user";
   $dbPass = "test_password"; 

   $connStr = "jdbc:ingres://${dbHost}:${dbPort}/${dbName}"; 

   $db = new PJBridge();
   $result = $db->connect($connStr, $dbUser, $dbPass);
   if(!$result){
      die("Failed to connect");
   } 

   $cursor = $db->exec("SELECT * FROM test_table"); 

   while($row = $db->fetch_array($cursor)){
      print_r($row);
   } 

   $db->free_result($cursor);

Si desea obtener más información o concertar una demostración, póngase en contacto con el departamento de Servicios Profesionales en[email protected]. Puede obtener más Acerca de Actian aquí y visitar nuestros foros de la comunidad de Ingres aquí.