
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ónmysqli_connect_errno
) devuelve el número de error onull
si no se produce ningún error.connect_error
(o la funciónmysqli_connect_error
) devuelve el mensaje de error onull
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();
}