Cómo conectarse a bases de datos distintas de MySQL desde PHP

Si bien es casi una redundancia hablar de PHP+MySQL (Algo así como GNU y Linux), la realidad es que esta santa asociación es casi casual.

En PHP no existe un motor de base de datos preferido y otros de segunda. No voy a decir que PHP puede conectarse a cualquier motor de bases de datos (Habiendo pasado por la FCEyN aprendí bien a no usar los absolutos con ligereza :)), la realidad es que puede conectarse, de forma muy simple, a una amplia cantidad.


A su vez, las opciones son varias, dependiendo principalmente del nivel técnico de quien deba implementar la solución. Paso a explicar:

En el escalón más bajo están las funciones propias de php para realizar las conexiones:

Y un largo etcétera (Si tenés que conectarte a una base de datos diferente de estas, podés encontrar información útil acá).

Este es el modo de realizar la conexión si estás buscando programar en modo procedural o estructurado.

Si estás un poco más ducho y buscás un modo de realizar tus conexiones usando objetos, podés usar PDO. Al usar esta interfase, las cosas se hacen mucho más simples (Particularmente cuando se trata de migrar a otro motor, ya que lo único que cambia es el string con el que establecés la conexión).

Un ejemplo de conexión a un SqlServer que está en un servidor identificado como DB_SERVER:

<?php

try {
  $conexion = new PDO("sqlsrv:Server=DB_SERVER;Database=midb", "Usuario", "Contraseña");
} catch ( PDOException $e ) {
  echo $e->getMessage();
}
  • Y una vez que tenés las conexión lista, las operaciones se realizan del mismo modo si se trata de un MySQL, SqlServer, Oracle, etc…
  •  
  • Por último, si estás realmente decidido a llevar el tema a su máximo nivel, te recomiendo usar algún ORM (Si me preguntás a mí, con Doctrine deberías andar muy bien).

¿Te quedó alguna duda? ¡Posteala en los comentarios!

mchojrin

Por mchojrin

Ayudo a desarrolladores PHP a acceder mercados y clientes más sofisticados y exigentes

5 comentarios

  1. Hola Gusto en Saludarles, disculpen tengo una duda me gustaría saber como puedo conectar dos bases de datos distintas??, tengo mi pagina en su dominio habitual pero dentro de este mismo tengo la copia de esta, lo que deseo saber es como puedo programar una tarea en mi código para que al momento en que actualice la web original de mi dominio también se actualice la copia es decir se actualicen ambas paginas en sus entorno se vean igual y sus bases de datos tengan los mismos registros….

    1. Hola Robert:

      Gracias por tu comentario 🙂

      Puedes lograr tu objetivo de varias formas diferentes, depende un poco de cómo esté estructurada tu aplicación, qué conocimientos tengas y qué motor de BBDD utilices entre otros.

      El modo que yo te recomendaría sería tener un esquema tipo maestro-esclavo donde la replicación se realice directamente desde a través del motor.

      De esta forma no tendrás que modificar tu código para nada.

      Otro modo sería hacer, dentro de tu código, una segunda conexión y ejecutar los mismos SQL en ambas.

      Esto puede funcionar, pero es bastante endeble… basta con que en algún lugar del código se omita esta segunda conexión para que todo el sistema quede desincronizado.

      Una última alternativa que se me ocurre es tener un proceso corriendo vía cron que realice una copia… depende de qué tan importante sea la frescura de la copia si esto te puede servir.

      Saludos!

    1. Gracias Dani?
      Me alegro que te haya ayudado.

      ¿Qué estás estudiando? ¿Qué partes te resultan más complicadas?

      Saludos y no olvides compartir ?

¿Te quedó alguna duda? Publica aca tu pregunta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.