php

Obtener nombre de las tablas de base de datos en MySQL con PHP

Introducción

El otro día me vi en la necesidad de obtener las tablas que tiene una base de datos de MySQL usando PHP. Es decir, dada una base de datos, obtener una lista (como arreglo) de las tablas que tiene.

Lo resolví combinando algunas consultas y utilizando el driver PDO de PHP.

Obtener listado de tablas de base de datos de MySQL en PHP

Primero la consulta a MySQL

Esto tiene que ver con obtener las tablas de una base de datos, para ello existe una consulta en este motor la cual es:

SELECT table_name AS nombre
FROM information_schema.tables WHERE table_schema = 'nombre_de_tu_base_de_datos';

Ahí seleccionamos la columna table_name con un alias para que lo devuelva como “nombre“. Al final ponemos el nombre de la base de datos.

Por cierto, aparte de table_name podemos consultar:

  • TABLE_CATALOG
  • TABLE_SCHEMA
  • TABLE_NAME
  • TABLE_TYPE
  • ENGINE
  • VERSION
  • ROW_FORMAT
  • TABLE_ROWS
  • AVG_ROW_LENGTH
  • DATA_LENGTH
  • MAX_DATA_LENGTH
  • INDEX_LENGTH
  • DATA_FREE
  • AUTO_INCREMENT
  • CREATE_TIME
  • UPDATE_TIME
  • CHECK_TIME
  • TABLE_COLLATION
  • CHECKSUM
  • CREATE_OPTIONS
  • TABLE_COMMENT

No sé para qué sirven todas esas opciones pero las pongo igualmente, ya que sólo necesitamos el nombre de la tabla.

Obteniendo a través de PHP y PDO

Esta consulta simplemente la hacemos pero a través del driver o controlador PDO. Recordemos que para crear un nuevo objeto de este tipo necesitamos la cadena de conexión, el host, usuario y contraseña.

Normalmente el host es localhost. Pero en fin, hablar es de mal gusto así que aquí la función en PHP:

<?php
function obtenerTablasDeUnaBaseDeDatos($host, $usuario, $pass, $nombreDeLaBaseDeDatos)
{
    try {
        $base_de_datos = new PDO("mysql:host=$host;dbname=$nombreDeLaBaseDeDatos",
            $usuario, $pass);
    } catch (Exception $e) {
        echo "Ocurrió algo con la base de datos: " . $e->getMessage();
    }
    return $base_de_datos
        ->query("SELECT table_name AS nombre FROM information_schema.tables WHERE table_schema = '$nombreDeLaBaseDeDatos';")
        ->fetchAll(PDO::FETCH_COLUMN);
}

Lo que hace es devolver, en un arreglo, las tablas que tiene una base de datos. Le debemos pasar el host, usuario, password y el nombre de la base de datos. Obviamente el usuario que pasemos debe tener permiso de leer la BD.

Un ejemplo de cómo podemos llamarla es este:

<?php
$tablas = obtenerTablasDeUnaBaseDeDatos("localhost", "root", "", "mascotas");
print_r($tablas);

Ahí lo que hacemos es obtener la información de la base de datos mascotas, que dentro tiene una tabla llamada mascotas. Si tuviera más tablas las mostraría todas, pero como tiene una pues es lo único que muestra.

La salida es esta:

Obtener nombre de las tablas de una base de datos con MySQL y PHP

En ese caso imprimimos el arreglo, pero podemos recorrerlo o hacerle cualquier otra cosa.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

Entradas recientes

Servidor HTTP en Android con Flutter

El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…

4 días hace

Imprimir automáticamente todos los PDF de una carpeta

En este post te voy a enseñar a designar una carpeta para imprimir todos los…

5 días hace

Guía para imprimir en plugin versión 1 desde Android

En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…

1 semana hace

Añadir tasa de cambio en sistema de información

Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…

2 semanas hace

Comprobar validez de licencia de plugin ESC POS

Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…

2 semanas hace

Imprimir euro € en impresora térmica

Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…

4 semanas hace

Esta web usa cookies.