22 octubre, 2024
Conexión y métodos de consulta a una BD MYSQL
Programación de una clase para conectarse a una base de datos en MYSQL ademas de los métodos CRUD estandar para realizar consultas, en PHP

Suscríbete a nuestro canal en Youtube
SuscríbirseToda aplicación o página web que muestra datos de forma dinámica; tiene por defecto:
- Una conexión a una base de datos y
- Métodos de consulta para gestionar los datos, conocidos como MÉTODOS CRUD.
CONECTAR UNA BASE DE DATOS CON PHP MUY FÁCILMENTE.
Pero antes veremos que necesitamos para implementar o programar una aplicación web de forma sencilla
Herramientas de desarrollo
- Un editor de código en este caso usaremos Visual Studio Code
- Un Servidor Local usaremos Xampp
- Un navegador web pues tenemos a Google Chrome.
Pasos para conectar
- Primero creamos un documento PHP con el nombre de conexion.php.
- Segundo creamos una base de datos en la sección phpmyadmin con el nombre de bdcodea y seria conveniente crear una tabla con registros insertados. En nuestro caso vamos a crear una tabla con el nombre de "nombre" con dos campos id y nombre además ingresamos dos registros.
- Tercero implementamos el script que gestionará la conexión a la base de datos MySql
- Cuarto probamos y testeamos el script
- Y el Quinto paso es emplear la conexión para mostrar datos en nuestra vista.
Script para conectar la Base de datos
<?php
$hostname="localhost";
$username="root";
$password="";
$dbname="bdcodea";
$db= mysqli_connect($hostname,$username, $password)
or die("<html><script language='JavaScript'>alert('¡No es posible conectarse a la base de datos! Vuelve a intentarlo más tarde.'),history.go(-1)</script></html>");
mysqli_select_db($db,$dbname);
Ahora una aplicación práctica
En esta parte usamos la conexión a la base de datos.
<?php
require "conexion.php";
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CONECTAR UNA BD MYSQL CON PHP DE FORMA SENCILLA</title>
<style>
table{
width:400px;
}
h1{
width:400px;
text-align:center
}
.centrar{
margin: 0 auto;
background:orange;
}
</style>
</head>
<body>
<h1 class="centrar">LISTA DE USUARIOS</h1>
<?php
$query = "SELECT * FROM nombre";
$result = mysqli_query($db,$query);
if($result){
echo "<table border=1 class='centrar'>";
echo "<tr> <td> ID </td> <td> NOMBRE </td> </tr>";
while($row = mysqli_fetch_array($result)){
$id = $row["id"];
$name = $row["nombre"];
echo "<tr> <td> ".$id."</td> <td> ".$name."</td> </tr>";
}
echo "</table>";
}
?>
</body>
</html>
Un punto muy importante es que debemos cerrar la base de datos despues de usarla.
¿Cómo cerrar una Base de Datos con PHP?
Siguiendo el flujo de nuestra pequeña aplicación pues simplemente podemos dar un valo nullable a la variable que almacena la conexión. Y sería de la siguiente forma.
<?php
$db = null;
?>
La versión que hemos desarrollado esta implementada para PHP 7.0 ó superior con soporte para MYSQL y MYSQLi
MÉTODOS CRUD BÁSICOS
- insertar
- buscar
- eliminar
- actualizar
Creando la clase contenedora y el constructor PHP para la conexión de la base de datos:
<?php
class ApptivaDB{
private $host ="localhost";
private $usuario="root";
private $clave ="";
private $db ="test";
public $conexion;
public function __construct(){
$this->conexion = new mysqli($this->host, $this->usuario, $this->clave,$this->db) or die(mysql_error());
$this->conexion->set_charset("utf8");
}
Una vez declara las variables para la conexión creamos el objeto mysqli y asignamos el mantenimiento de caracteres latinos con utf8
En nuestro proyecto web debemos instanciarla de la siguiente manera:
// OPTIMIZANDO UNA CNX MYSQLI VERSION PHP 7 ó superior
include "db.php";
$user = new ApptivaDB();
Ahora implementaremos los métodos de consulta a la base de datos
MÉTODO INSERTAR
//INSERTAR
public function insertar($tabla, $datos){
$resultado = $this->conexion->query("INSERT INTO $tabla VALUES (null,$datos)") or die($this->conexion->error);
if($resultado)
return true;
return false;
}
Este método toma 2 paramentos :
- $tabla = enviamos el nombre de la tabla a acceder
- $datos= Segundo parámetro tiene una cadena de texto con los valores para insertar un nuevo registro, cabe resaltar que es una inserción autoincrementable es decil null representa el id autonumérico.
Si la consulta fue correcta en $resultado retornamos verdadero o true y false ocurrió un error inesperado.
La forma de usarlo es:
$u=$user->insertar("usuarios","'PAPA','JUAN PABLO','foto.jpg'");
if($u)
echo "Insertado";
else
echo "No insertado";
Llenamos los parámetros tabla y la cadena con todos los valores a insertar.
MÉTODO BUSCAR
//BUSCAR
public function buscar($tabla, $condicion){
$resultado = $this->conexion->query("SELECT * FROM $tabla WHERE $condicion") or die($this->conexion->error);
if($resultado)
return $resultado->fetch_all(MYSQLI_ASSOC);
return false;
}
Al igual que el anterior método, este tiene dos parámetros la tabla y la condición, el objetivo de esta consulta es extraer todos los campos o valores de uno o varios registros que cumplan la condición.
Y si hay resultados retorna un array asociativo con todos los datos del registro; caso contrario si no hay resultados retorna false.
Lo usamos de la siguiente manera:
if($resultado=$user->buscar("usuarios","1"))
foreach ($resultado as $value)
echo $value['id']."-".$value['nombre']."<br>";
else
echo "No hay registros";
Con ello extraemos todos los registros de la tabla con el nombre de usuarios y mostramos sus valores recorriendo el array asociativo con foreach, y en caso contrario mostramos un mensaje "no hay registros."
MÉTODO ACTUALIZAR
public function actualizar($tabla, $campos, $condicion){
$resultado = $this->conexion->query("UPDATE $tabla SET $campos WHERE $condicion") or die($this->conexion->error);
if($resultado)
return true;
return false;
}
Actualizar o modificar datos de un registro en una tabla lo haremos usando la función actualizar, la cual recibe tres parámetros,
- $tabla
- $campos
- $condicion
Se arma la consulta con las tres variables para editar los registros de una tabla de acuerdo a la condición. si se obtiene un resultado exitoso retornamos true, muestra que false si ocurre un error.
La forma de usarlo se resume:
$u=$user->actualizar("usuarios","nombre='ANAMARIA'","id=1");
if($u)
echo "Actualizado";
else
echo "No actualizado";
Enviamos los tres parámetros, lo que dice esta consulta es modificar la tabla usuarios en el campo nombre con el valor 'ANAMARIA' donde id=1, es decir solo va a afectar al registro que tenga el valor 1 en para el id. Si lo logra muestra actualizado, caso contrario muestra no actualizado.
MÉTODO ELIMINAR
public function borrar($tabla, $condicion){
$resultado = $this->conexion->query("DELETE FROM $tabla WHERE $condicion") or die($this->conexion->error);
if($resultado)
return true;
return false;
}
Este método permite eliminar registros de una tabla, tiene por entrada dos parámetros la tabla y la condición. Si la consulta fue exitosa, retornamos true, caso contrario false.
La forma de usar esta consulta es la siguiente:
$u=$user->borrar("usuarios","id=1");
if($u)
echo "Borrado";
else
echo "No borrado";
Llenamos los parametros donde tabla es usuarios y la condición es id=1, vemos que si logra borrar o eliminar el registro que cumpla la condición retorna true si es asi mostramos Borrado, caso contrario No borrado..
TODO EL CÓDIGO DE LA CLASE PHP
<?php
class ApptivaDB{
private $host ="localhost";
private $usuario="root";
private $clave ="";
private $db ="test";
public $conexion;
public function __construct(){
$this->conexion = new mysqli($this->host, $this->usuario, $this->clave,$this->db)
or die(mysql_error());
$this->conexion->set_charset("utf8");
}
//INSERTAR
public function insertar($tabla, $datos){
$resultado = $this->conexion->query("INSERT INTO $tabla VALUES (null,$datos)") or die($this->conexion->error);
if($resultado)
return true;
return false;
}
//BORRAR
public function borrar($tabla, $condicion){
$resultado = $this->conexion->query("DELETE FROM $tabla WHERE $condicion") or die($this->conexion->error);
if($resultado)
return true;
return false;
}
//ACTUALIZAR
public function actualizar($tabla, $campos, $condicion){
$resultado = $this->conexion->query("UPDATE $tabla SET $campos WHERE $condicion") or die($this->conexion->error);
if($resultado)
return true;
return false;
}
//BUSCAR
public function buscar($tabla, $condicion){
$resultado = $this->conexion->query("SELECT * FROM $tabla WHERE $condicion") or die($this->conexion->error);
if($resultado)
return $resultado->fetch_all(MYSQLI_ASSOC);
return false;
}
}
?>
CONSIDERACIONES:
Los métodos implementados son los básicos para gestionar una base de datos, pero podemos implementar más métodos que se adapten a nuestros proyectos, básicamente depende de la creatividad del desarrollador para obtener consultar eficientes.
Algunos métodos a programar pueden ser:
- Extraer un solo dato
- El número o cantidad de registros
- El max o min valor de un campo
- O talvez un método exclusivo para un login, etc...
Leido 48164 veces | 5 usuarios
Descarga del código fuente PHP de Conexión y métodos de consulta a una BD MYSQL
Accede al código fuente esencial de nuestra aplicación en formato ZIP ó TXT. Ideal para desarrolladores que desean personalizar o integrar nuestra solución.
Opciones de descarga
- Usuarios Registrados: Inicia sesión para descarga inmediata.
- Nuevos Usuarios: Regístrate y descarga.