Obtener columnas de una tabla de MySQL con PHP

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.

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

Obtener columnas de una tabla de MySQL con PHP

Por parzibyte Tiempo de lectura: 2 min
0