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

Publicado por parzibyte en

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:

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:

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:

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

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.


parzibyte

He trabajado por más de 4 años en el desarrollo de software con experiencia en Java, PHP, JavaScript, HTML, Node.JS, Python, Android y Go. También he trabajado con bases de datos SQL como MySQL y SQLite, así como con bases de datos NoSQL usando MongoDB.Soy bueno utilizando algunos frameworks y herramientas como Firebase, jQuery, AngularJS, VueJS, CodeIgniter, Laravel, BulmaCSS, Bootstrap y Electron.Otros términos que conozco son: Arduino, GraphQL, API's, REST, AJAX, PouchDB, CouchDB, Experiencia de usuario, buenas prácticas de programación, Webpack, NPM, Administración de servidores y programación de scriptsLa plataforma en la que tengo más experiencia es la web, pero en mis ratos libres realizo unos pequeños ejercicios en C# y C.Estoy aquí para ayudarte a resolver tus problemas de programación y depuración :-)

2 Comments

Obtener columnas de una tabla de MySQL con PHP - Parzibyte's blog · octubre 25, 2018 a las 12:42 pm

[…] de ver cómo obtener un listado de tablas de MySQL a través de PHP usando PDO. Pues bien, ahora veamos algo más preciso o específico y es: cómo obtener un listado de las […]

Generador de código (Modelo, vista y controlador) para CodeIgniter - Parzibyte's blog · octubre 27, 2018 a las 11:48 pm

[…] Obtener tablas de una base de datos […]

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

A %d blogueros les gusta esto: