Saltar la navegación

3.1.1.- Establecimiento de conexiones.

Imagen de un enchufe con un relámpago amarillo dentro.
Enchufes Inteligentes (CC BY-SA)


Para poder comunicarte desde un programa PHP con un servidor MySQL, el primer paso es establecer una conexión. Toda comunicación posterior que tenga lugar, se hará utilizando esa conexión.

Si utilizas la extensión MySQLi, establecer una conexión con el servidor significa crear una instancia de la clase mysqli. El constructor de la clase puede recibir seis parámetros, todos opcionales, aunque lo más habitual es utilizar los cuatro primeros:

  • El nombre o dirección IP del servidor MySQL al que te quieres conectar.
  • Un nombre de usuario con permisos para establecer la conexión.
  • La contraseña del usuario.
  • El nombre de la base de datos a la que conectarse.
  • El número del puerto en que se ejecuta el servidor MySQL.
  • El socket o la tubería con nombre (named pipe) a usar.

Si utilizas el constructor de la clase, para conectarte a la base de datos "proyecto" puedes hacer:

// utilizando el constructor de la clase

$conProyecto = new mysqli('localhost', 'gestor', 'secreto', 'proyecto');

Aunque también tienes la opción de primero crear la instancia, y después utilizar el método "connect" para establecer la conexión con el servidor:

// utilizando el método connect

$conProyecto = new mysqli();

$conProyecto->connect('localhost', 'gestor', 'secreto', 'proyecto');

Por el contrario, utilizando el interface procedimental de la extensión:

// utilizando llamadas a funciones

$conProyecto = mysqli_connect('localhost', 'gestor', 'secreto', 'proyecto');

Es importante verificar que la conexión se ha establecido correctamente. Para comprobar el error, en caso de que se produzca, puedes usar las siguientes propiedades (o funciones equivalentes) de la clase mysqli:

  • connect_errno (o la función mysqli_connect_errno) devuelve el número de error o null si no se produce ningún error.
  • connect_error (o la función mysqli_connect_error) devuelve el mensaje de error o null si no se produce ningún error.

Por ejemplo, el siguiente código comprueba el establecimiento de una conexión con la base de datos "proyecto" y finaliza la ejecución si se produce algún error:

@$conProyecto = new mysqli('localhost', 'gestor', 'secreto', 'proyecto');
$error = $conProyecto->connect_errno;
if ($error != null) {
     echo "<p>Error $error conectando a la base de datos: $conProyecto->connect_error</p>";
     die();
}

Observa que, como veremos posteriormente con más detalle, puedes anteponer a cualquier expresión el operador de control de errores "@" para que se ignore cualquier posible error que pueda producirse al ejecutarla.

Operador de control de errores @.

Si una vez establecida la conexión, quieres cambiar la base de datos puedes usar el método "select_db" (o la función "mysqli_select_db" de forma equivalente) para indicar el nombre de la nueva, lógicamente el usuario con el que hemos iniciado la conexión debe tener permisos en la nueva.

// utilizando el método connect

$conProyecto->select_db('otra_bd');

Una vez finalizadas las tareas con la base de datos, utiliza el método "close" (o la función "mysqli_close") para cerrar la conexión con la base de datos y liberar los recursos que utiliza.

$conProyecto->close();