Inicio » Blog » PHP

18 noviembre, 2018

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íbirse

Toda aplicación o página web que muestra datos de forma dinámica; tiene por defecto:

  1. Una conexión a una base de datos y
  2. 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

  1. insertar
  2. buscar
  3. eliminar
  4. 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 :

  1. $tabla = enviamos el nombre de la tabla a acceder
  2. $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, 

  1. $tabla
  2. $campos
  3. $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 45817 veces

Descarga el código fuente PHP

Recurso descargado 245 veces

USD

Descargar Código Fuente

Compartir link del tutorial con tus amigos


Comentarios con Roles en Laravel Comentarios con Roles en Laravel

Curso Laravel Desarrollo de un Sistema de Comentarios con Roles

Descarga del código fuente

USD 9.00

Laravel 9 Página Web para Negocio Laravel 9 Página Web para Negocio

Curso Laravel 9 Avanzado Desarrollo Web Administrable para negocio

Descarga del código fuente

USD 10.00

Laravel 11 Página Web Administrable Laravel 11 Página Web Administrable

Curso Laravel 11 Desarrollo de una Página Web Administrable

Descarga del código fuente

USD 47.00

Laravel Plataforma de Cursos Online Laravel Plataforma de Cursos Online

Curso Laravel desarrollo de una plataforma de cursos online

Descarga del código fuente

USD 250.00

MVC PHP y MySql Página Web MVC PHP y MySql Página Web

Curso MVC PHP MySQL desarrollo de una página web administrable

Descarga del código fuente

USD 7.00

Aprende más sobre PHP

Cursos de programación

Codea Codea App

México, Colombia, España, Venezuela, Argentina, Bolivia, Perú

© Todos los derechos reservados Codea App | ...de frente al código!!! | 2020 - 2023