MySQLi es una clase de PHP que permite conectarse a la base de datos MySQL.
Introduccion
Para continuar con este post debe saber lo básico del lenguaje SQL, si no sabe le recomendamos aprender aqui.
Conexión
Para conectarse a la base de datos se crea una instancia de la clase mysqli pasando como parámetros: host, usuario, contraseña y base de datos.
[code language=”php”] <?php$host="localhost";
$usuario="root";
$password="";
$db="prueba1";
$conexion = new mysqli($host,$usuario,$password,$db);
?>
[/code]
Puedes sustituir los valores de las variables $host, $usuario, $password, $db que se adapte a tu instalación.
Si la conexión es exitosa entonces la variable $conexion es nuestra clave para manipular la base de datos.
Tabla personas
En el transcurso de este tutorial usaremos como ejemplo la tabla usuarios que aparece a continuación.
[code language=”sql”] create table personas (id int not null auto_increment primary key,
nombre varchar(100),
apellido varchar(100),
domicilio varchar(200)
);
[/code]
Insertar
La consulta para insertar basándonos en la tabla personas es:
[code language=”sql”] insert into personas (nombre,apellido,domicilio) value ("Agustin","Ramos","Mexico");[/code]
En PHP:
[code language=”php”] <?php$sql = "insert into personas (nombre,apellido,domicilio) value (\"Agustin\",\"Ramos\",\"Mexico\")";
$conexion->query($sql);
?>
[/code]
Si la consulta de inserción en exitosa entonces podremos ver el id insertado con el atributo insert_id de la variable $conexion.
[code language=”php”] <?php echo $conexion->insert_id; ?>[/code]
Listar
Para listar las entradas de la tabla en SQL:
[code language=”sql”] select * from personas[/code]
En PHP:
[code language=”php”] <?php$sql="select * from personas";
$query=$conexion->query($sql);
if($query->num_rows>0){
while($r=$query->fetch_array()){
echo $r["nombre"];
echo "<br>";
}
}else{
echo "No hay resultados";
}
?>
[/code]
Con fetch_array convertimos el resultado obtenido en un array, otra opción seria fetch_object con lo que manejaríamos un objeto.
La variable $r es nuestro array resultado y accedemos a los campos de la base de datos desde la palabra dentro de corchetes: $r[“id”],$r[“nombre”],$r[“apellido],$r[“domicilio”].
Si usaramos fetch_object la forma de acceder a los valores seria: $r->id, $r->nombre,$r->apellido,$r->domicilio.
Actualizacion
La consulta SQL para actualizar es:
[code language=”sql”] update personas set nombre="Otro",apellido="Otro",domicilio="Otro" where id=1;[/code]
Debemos utilizar el id para especificar a que entrada nos estamos refiriendo.
En PHP;
[code language=”php”] <?php $sql="update personas set nombre=\"Otro\",apellido=\"Otro\",domicilio=\"Otro\" where id=1";$conexion->query($sql);
?>
[/code]
Eliminacion
Para eliminar también usaremos el parámetro id:
[code language=”sql”] delete from personas where id=1[/code]
En PHP:
[code language=”php”] <?php$sql = "delete from personas where id=1";
$conexion->query($sql);?>
[/code]
Por cierto, muy agradecido con el autor de este post, ya que estoy por dar unas clases de PHP donde empezaré a explicar la POO con bases de datos, y estaba buscando una forma ordenada y sencilla de hacerlo, luego iré subiendo el nivel con un diseño MVC. Pero para iniciar me parece perfecto la forma como se explica aquí.
Saludos Carlos, que gusto que te sirvio la informacion.!
y como cierras la coneccion?
La conexion se cierra con:
$con->close();
Pero normalmente tambien se cierra sola al finalizar el script.
Es lo que se supene que pase, pero para mantener buenas prácticas en programación pues sería muy útil (aunque tal vez algo complicado para personas con poca experiencia en PHP y en POO) crear una clase “Conexion” donde se use un método __construct() para conectarse y un método __destruct() para cerrar de manera correcta una conexión.
Es lo que casi siempre digo, es mejor mantener buenas practicas de programacion ;), Saluditos