Solución:
Puede utilizar DESCRIBE:
DESCRIBE my_table;
O en versiones más recientes, puede usar INFORMATION_SCHEMA:
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'my_database' AND TABLE_NAME = 'my_table';
O puede usar MOSTRAR COLUMNAS:
SHOW COLUMNS FROM my_table;
O para obtener los nombres de las columnas con una coma en una línea:
SELECT group_concat(COLUMN_NAME)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'my_database' AND TABLE_NAME = 'my_table';
Las siguientes declaraciones SQL son casi equivalentes:
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name="tbl_name"
[AND table_schema="db_name"]
[AND column_name LIKE 'wild']
SHOW COLUMNS
FROM tbl_name
[FROM db_name]
[LIKE 'wild']
Referencia: INFORMATION_SCHEMA COLUMNS
Hice una función PDO que devuelve todos los nombres de columna en una matriz simple.
public function getColumnNames($table){
$sql = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = :table";
try {
$core = Core::getInstance();
$stmt = $core->dbh->prepare($sql);
$stmt->bindValue(':table', $table, PDO::PARAM_STR);
$stmt->execute();
$output = array();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
$output[] = $row['COLUMN_NAME'];
}
return $output;
}
catch(PDOException $pe) {
trigger_error('Could not connect to MySQL database. ' . $pe->getMessage() , E_USER_ERROR);
}
}
La salida será una matriz:
Array (
[0] => id
[1] => name
[2] => email
[3] => shoe_size
[4] => likes
... )
Perdón por el necro pero me gusta mi función;)
PD: No he incluido la clase Core pero puedes usar tu propia clase .. DS
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)