Как получить имена столбцов в Php MySQLi?

Используя Php и MySQLi, как мне получить имена столбцов таблицы, а затем поместить результат этого запроса в массив?

Следующий код получает все имена столбцов из таблицы 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']; } 

Поскольку у меня есть id столбцов и name в моей таблице, это результат:

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

Если вы хотите получить столбцы из набора результатов, это зависит, но вот один из способов сделать это:

 $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]); } 

Пример результата для $columns :

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

Пример результата для $values :

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

Вы можете использовать array_keys (), чтобы получить все ключи массива,

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

Результат, который вы хотите получить, можно получить из $ x

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

Чтобы получить имена столбцов таблицы,

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

теперь массив $ x содержит имена столбцов таблицы