Consultas PHP – MySQL orientadas a objetos

PHP-MySQLDesde que salio a la luz la versión 5 de PHP, este lenguaje de programación orientado a web, cada vez se enfoca más a la programación orientada a objetos (POO). Las conexiones desde PHP a MySQL son una tarea habitual para un programador, y cada uno tiene sus formas de hacerlas. En este articulo, vamos a ver estas conexiones básicas con los métodos orientados a objetos.

Lo primero que hay que hacer para trabajar sobre MySQL es instanciar un objeto de la clase mysqli, la cual va a recibir los valores de servidor, usuario, contraseña y base de datos en este orden. Luego podemos comprobar mediante la propiedad connect_errno si ha existido algun error y cual es este. Tambien es conveniente establecer la codificacion si queremos trabajar con tildes, eñes y demas caracteres. Para esto, usamos el metodo set_charset. Una vez terminadas las consultas, hay que acordarse siempre de cerrar la conexion con el metodo close().

$mysqli = new mysqli("localhost", "root", "root", "pruebas");
if ($mysqli->connect_errno) {
    echo "Falló la conexión con la bbdd:
         (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
$mysqli->set_charset('utf8');

/* Aqui van las consultas */

$mysqli->close();

1.- Consultas SELECT

La consulta SELECT es la mas habitual. Para realizarla, vamos a utilizar el método query y para ver el resultado, el metodo fetch_object() de la clase mysqli_result. Veamos un ejemplo:

$result = $mysqli->query("SELECT id, user, email FROM usuarios");

echo "ID | USER | EMAIL<br>";

while($row = $result->fetch_object()){
	echo "$row->id | $row->user | $row->email<br>";
}

Si lo que queremos es mostrar un solo resultado, bastaría con eliminar el while:

$result = $mysqli->query("SELECT id, user, email FROM usuarios limit 1");

echo "ID | USER | EMAIL<br>";

$row = $result->fetch_object();

echo "$row->id | $row->user | $row->email<br>";

2.- Consultas INSERT, UPDATE, DELETE

Para realizar esta consultas, en las que modificas la base de datos, utilizamos tambien el metodo query para lanzar la consulta, y para ver si ha tenido efecto, la propiedad affected_rows, que devuelve un entero con el numero de filas modificadas. Veamos unos ejemplos:

$mysqli->query("INSERT INTO usuarios (user, nombre, email, edad)
		VALUES ('tyrion', 'Tyrion Lannister', 'tyrion@lannister.com', 34)");

if($mysqli->affected_rows > 0){
	echo "Inserción Correcta";
}else{
	echo "Error en la inserción";
}
$mysqli->query("UPDATE usuarios SET nombre = 'Fran Aramayo' WHERE id = 1");

if($mysqli->affected_rows > 0){
	echo "Actualización Correcta";
}else{
	echo "Error en la actualización";
}
$mysqli->query("DELETE FROM usuarios WHERE id = 2");

if($mysqli->affected_rows > 0){
	echo "Eliminación Correcta";
}else{
	echo "Error en la eliminación";
}

Hay ocasiones en las que necesitamos el id del ultimo registro modificado, para esto podemos usar la propiedad insert_id. Esta es valida para INSERT y UPDATE cuando hay un campo de la tabla con AUTO_INCREMENT. Ejemplo:

$mysqli->query("INSERT INTO usuarios (user, nombre, email, edad)
		VALUES ('tyrion', 'Tyrion Lannister', 'tyrion@lannister.com', 34)");

if($mysqli->affected_rows > 0){
	echo "Inserción Correcta con el id: $mysqli->insert_id";
}else{
	echo "Error en la inserción";
}

Con esto ya tendríamos cubiertas la mayoria de las operaciones que se realizan desde PHP en una base de datos MySQL.

¿Te ha gustado este artículo? ¿te ha servido de ayuda? No dudes en comentarlo o compartirlo!

Un saludo, Fran Aramayo

Deja una respuesta