Используя 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 содержит имена столбцов таблицы