¿Cómo obtengo los nombres de columna en Php MySQLi?

Usando Php y MySQLi, ¿cómo obtengo los nombres de columna de una tabla y luego pongo el resultado de esa consulta en una matriz?

El siguiente código obtiene todos los nombres de columna de la tabla table_name :

 $mysqli = new mysqli('localhost', 'USERNAME_HERE', 'PASSWORD_HERE', 'DATABASE_HERE'); $sql = 'SHOW COLUMNS FROM table_name'; $res = $mysqli->query($sql); while($row = $res->fetch_assoc()){ $columns[] = $row['Field']; } 

Como tengo el id y el name las columnas en mi tabla, este es el resultado:

 Array ( [0] => id [1] => name ) 

Si desea obtener las columnas de un conjunto de resultados, depende, pero esta es una forma de hacerlo:

 $mysqli = new mysqli('localhost', 'USERNAME_HERE', 'PASSWORD_HERE', 'DATABASE_HERE'); $sql = 'SELECT * FROM table_name'; $res = $mysqli->query($sql); $values = $res->fetch_all(MYSQLI_ASSOC); $columns = array(); if(!empty($values)){ $columns = array_keys($values[0]); } 

Ejemplo de resultado para $columns :

 Array ( [0] => id [1] => name ) 

Ejemplo de resultado para $values :

 Array ( [0] => Array ( [id] => 1 [name] => Name 1 ) [1] => Array ( [id] => 2 [name] => Name 2 ) ) 

Puede usar array_keys () para obtener todas las claves de una matriz,

 $myarray = array('key1' => 'a', 'key2' => 'b') $x = array_keys($myarray); 

El resultado que desea se puede obtener desde $ x

 $x = array(0 => 'key1', 1 => 'key2'); 

Para obtener los nombres de las columnas de una tabla,

 $sql = "SELECT * FROM table_name LIMIT 1; $ref = $result->query($sql); $row = mysqli_fetch_assoc($ref); $x = array_keys($row); 

ahora $ x matriz contiene los nombres de las columnas de la tabla