Introducción general.

MySQLi es la extensión mejorada de MySQL en php.
Esta siempre sera la opción recomendada, ya que extiende y amplia todos las posibilidades del API original de MySQL de PHP

MySQL queda obsoleta a partir de PHP 5.5. MySQLi Comparada con MySQL original mejora los siguientes puntos:

  • Ofrece un Interfaz orientada a objetos para PHP.
  • Te da la posibilidad de preparar sentencias.
  • Abre la puerta a poder realizar múltiples sentencias.
  • Da Soporte a las transacciones.
  • Mejoradas la depuracion y sus opciones.
  • Aumenta las funcionalidades ya amplias de por si.
  • Soporte para procedimientos almacenados (PL/SQL)
  • Mejora en la seguridad.
  • Se le supone una mayor comodidad.

En la propia web oficial de PHP se recomienda utilizar el API MySQLi en lugar del API MySQL tradicional.

Si programas con PHP Orientado a objetos, MySQLi cuenta con su propio interfaz orientada a objetos, te permite llamar a métodos de MySQLi como utilizando la flechita » ->» de los objetos.

Con este metodo, nuestro codigo quedara mas limpio y ordenado, aumentando la productividad y facilitando el mantenimiento

Si todavia programas con procedimental(Piensa en migrar a POO) con PHP no tendras problemas al usar MySQLi cuenta con una interfaz procedimental, muy similar a la de MySQL.

Mysqli vs Mysql ¿Cual es el mejor?

La respuesta es muy simple MySQli es la mejora de MySQL, como ya he comentado te da la posibilidad de trabajar con un interface orientado a objetos, y si todavia no te has migrado puedes utilizarla como si fuera la vieja MySQL ya obsolita

La extensión MySQL está en desuso y no estará disponible en futuras versiones de PHP. Se recomienda utilizar la extensión MySQLi con PHP 5.5 y superior.

MySQLMySQLi
Extensión MySQL agregada en PHP versión 2.0. y en desuso a partir de PHP 5.5.0.La extensión MySQLi se agregó en PHP 5.5 y funcionará en MySQL 4.1.3 o superior.
No admite declaraciones preparadas.MySQLi admite declaraciones preparadas.
MySQL proporciona la interfaz de procedimiento.MySQLi proporciona una interfaz tanto procesal como orientada a objetos.
La extensión MySQL no es compatible con el procedimiento almacenado.MySQLi admite el procedimiento de tienda.
La extensión MySQL se retrasa en seguridad y otras características especiales, comparativamente.La extensión MySQLi es con seguridad mejorada y depuración mejorada.
Las transacciones se manejan solo mediante consultas SQL.MySQLi admite transacciones a través de API.
Directorio de extensiones: ext / mysql.Directorio de extensiones: ext / mysqli.
Tabla comparativa entre Mysql y Mysqli

Nota:

Aunque la extensión MySQL ya está en desuso, por compatibilidad con versiones anteriores continuara disponible. Pero no la uses si estás comenzando un proyecto nuevo es muy recomendable de MySQL a MySQLi

Otras ventajas de MySQLi

  • La función MySQLi mysqli_query () permite aplicar consultas propensas a errores y evita errores como la inyección SQL.
  • Usando la búsqueda de datos de MySQLi , podemos obtener un búfer o un búfer en función del tamaño del recurso del servidor.
  • MySQLi API permite ejecutar múltiples consultas con una sola expresión usando la función multi_query ().

¿Como usar MySQLi?

Conexión con mysqli connect a la base de datos

Para realizar una conexión con mysqli, tendremos que utilizar la funcion mysqli(). Esta función es la encargada de preparar todo para que podamos realizar las consultas a las bases de datos mediante php

Consultas mas comunes con mysqli a la base de datos

Realiza una conexión a la base de datos.

<?php
  $host ="localhost";
  $usuario ="Root";
  $password ="Contraseña"; 
  $base ="Prueba";
$conexion = new mysqli($host, $usuario, $password, $base);
 
if ($conexion->connect_errno) 
{
    echo "No se ha podido conectar a la BBDD: (" . $conexion->connect_errno . ") " . $conexion->connect_error;
}
?>

Ejecuta una consulta en la base de datos.

Junto a un bucle while sirve para recorrer los resultados de la consulta.

$consulta->fetch_assoc();

Devuelve el número de filas de un conjunto de resultados de una sentencia.

$consulta->num_rows;

Devuelve el error de la consulta.

$consulta->error;

Devuelve el error en la conexión a la base de datos.

$conexion->error;
Tags: