Establecer y cerrar una conexión (MySQLI)

Para establecer una conexión utilizaremos:

**Estilo por procedimientos:**

mysqli mysqli_connect( [string $host [, string $usuario
   [, string $contraseña [, string $base_de_datos
   [, int $puerto [, string $socket    ]]]]]] )

En el primer ejemplo:

$db = mysqli_connect('localhost', 'comprador', 'proweb2013', 'uazon');

**Estilo orientado a objetos (constructor):**

class mysqli {
   __construct ([string host [, string usuario
      [, string contraseña [, string base_de_datos
      [, int puerto [, string socket]]]]]] )
}

En el segundo ejemplo:

$db = new mysqli('localhost', 'comprador', 'proweb2013', 'uazon');

La función **mysqli_connect()** intenta abrir una conexión al servidor MySQL y devolverá un identificador o un objeto representando la conexión a la base de datos, o FALSE en caso contrario.

Todos los parámetros son opcionales pero si no hemos especificado nada en la configuración deberemos rellenar los siguientes:

  • host: será el servidor de MySQL y puede ser el nombre de un equipo o una dirección IP. Pasando el valor NULL o la cadena a este parámetro, se asume que está en el mismo equipo.

  • usuario y contraseña: En ellos se específica el nombre de usuario y contraseña con los cuales se debe conectar al servidor MySQL. Si no se da contraseña el valor NULL es tomado, el servidor MySQL intentará verificar al usuario contra los registros de usuarios que estén sin contraseña. Esto permite que un usuario pueda ser usado con diferentes permisos (dependiendo si se provee contraseña o no).

  • base_de_datos: Donde especificaremos la base de datos (dbspace) donde realizaremos las consultas. También podremos usar mysqli_select_db para hacerlo a posteriori.

De forma análoga para cerrar una conexión utilizaremos:

**Estilo por procedimientos:**

bool mysqli_close ( mysqli identificador_de_enlace )

En el primer ejemplo:

mysqli_close($db);

**Estilo orientado a objetos (método):**

class mysqli {
   bool close ( void )
}

En el segundo ejemplo:

$db->close();

Al contrario de lo que sucedía en la otra extensión, tendremos funciones diferentes para comprobar errores en la base de datos. Diferenciando si han sucedido durante la conexión o en otras operaciones.

Para comprobar si hemos podido realizar la conexión correctamente, utilizaremos las funciones:

int mysqli_connect_errno ( void )

Nos devolverá un código de error o 0 en caso de éxito.

string mysqli_connect_error ( void )

Nos devolverá un texto con el error ocurrido, para un posible log o aviso.

Ojo, son funciones independientes por lo que no tienen versión orientada a objetos.

En los dos ejemplos tenemos:

function CompruebaErrorConexionMySQL($mensaje) {
   if (mysqli_connect_errno() != 0)
   {
      echo $mensaje .' :' . mysqli_connect_error();
      exit();
   }
}
...
if (mysqli_connect_errno() != 0) {
   throw new Exception('Error conectando:' .
      mysqli_connect_error(), mysqli_connect_errno());
}

Para errores fuera de la conexión utilizaremos:

**Estilo por procedimientos:**

int mysqli_errno ( mysqli $identificador_de_enlace )
string mysqli_error ( mysqli $identificador_de_enlace )

En el primer ejemplo:

function CompruebaErrorMySQL($mensaje, $conexion) {
   if (mysqli_errno($conexion) != 0)
   {
      echo $mensaje.' :' . mysqli_error($conexion); mysqli_close($conexion);
      exit();
   }
}

**Estilo orientado a objetos** (el número de error y el mensaje se almacenan en la variables **errno** y **error** respectivamente):

class mysqli {
   int errno;
   string error;
}

En el segundo ejemplo:

if ($db->errno != 0)
   throw new Exception('Error seleccionando uazon:'. $db->error, $db->errno);

results matching ""

    No results matching ""