Obtener columnas de una tabla de MySQL con PHP

Publicado por parzibyte en

Introducción

Acabamos 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 columnas que tiene una tabla usando PHP y PDO.

Es decir, obtener la estructura o campos de una tabla, no sus datos. Para ello igualmente usaremos una consulta.

Lo que traerá la consulta será el tipo de dato y el nombre del campo o columna, pero podemos modificarla para que traiga más o menos datos.

Obtener campos o columnas que tiene una tabla usando PDO + PHP + MySQL

Primero la consulta al motor

Bueno, la consulta es simple y muy parecida a la que vimos hace un momento. Esta difiere del comando SHOW CREATE TABLE que vimos en el post de respaldar una base de datos porque obtiene las columnas de una forma limpia.

La consulta es:

En ese caso usamos un alias para seleccionar el nombre de la columna como “columna”. Por cierto, podemos obtener otros datos, los cuales son:

  • TABLE_CATALOG
  • TABLE_SCHEMA
  • TABLE_NAME
  • COLUMN_NAME
  • ORDINAL_POSITION
  • COLUMN_DEFAULT
  • IS_NULLABLE
  • DATA_TYPE
  • CHARACTER_MAXIMUM_LENGTH
  • CHARACTER_OCTET_LENGTH
  • NUMERIC_PRECISION
  • NUMERIC_SCALE
  • DATETIME_PRECISION
  • CHARACTER_SET_NAME
  • COLLATION_NAME
  • COLUMN_TYPE
  • COLUMN_KEY
  • EXTRA
  • PRIVILEGES
  • COLUMN_COMMENT

Seguramente las que te interesarán (como a mí) serán el tipo de dato, el cual está en COLUMN_TYPE, así como el IS_NULLABLE para saber si puede ser nulo.

Pero bueno, así lo hacemos en el motor. Veamos cómo se hace desde PHP.

Conectar esa consulta con PHP usando PDO

Veamos ahora cómo podemos hacerlo a través de PDO. Vamos a encerrarlo en una función para que sea reutilizable.

Ok… aquí sí hay una diferencia con el ejemplo en donde obteníamos las tablas. Ahora no regresamos un arreglo de strings, sino un arreglo de objetos.

¿Y qué tienen esos objetos? tienen dos propiedades. El nombre de la tabla, y el tipo. El nombre está en ->columna y el tipo en ->tipo.

Por mostrar un ejemplo podemos hacer esto:

Espero no confundir al lector. Recordemos que el último argumento es el nombre de la tabla, y en mi caso tengo una tabla con el mismo nombre que la base de datos.

Si nuestra base de datos fuera “ventas” y la tabla “productos” entonces la llamada quedaría así:

Esto suponiendo que la tabla productos existe dentro de ventas.

Aquí la salida:

Obtener columnas de una tabla de una base de datos con MySQL, PHP y PDO

Obtener columnas de una tabla de una base de datos con MySQL, PHP y PDO

Como se ve ahí, dentro del arreglo hay objetos. Podríamos recorrerlos así:

Obteniendo este resultado:

Recorrer nombre de columnas

Recorrer nombre de columnas

Así de simple es. Con eso terminamos por hoy.


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 :-)

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: