425 Stimmen

Tabellenspaltennamen in MySQL abrufen?

Gibt es eine Möglichkeit, den Spaltennamen einer Tabelle in MySQL mit PHP zu erfassen?

6voto

duhaime Punkte 22637

Ich brauchte Spaltennamen als flaches Array, während die anderen Antworten assoziative Arrays zurückgaben, also verwendete ich:

$con = mysqli_connect('localhost',$db_user,$db_pw,$db_name);
$table = 'people';

/**
* Get the column names for a mysql table
**/

function get_column_names($con, $table) {
  $sql = 'DESCRIBE '.$table;
  $result = mysqli_query($con, $sql);

  $rows = array();
  while($row = mysqli_fetch_assoc($result)) {
    $rows[] = $row['Field'];
  }

  return $rows;
}

$col_names = function get_column_names($con, $table);

$col_names ist jetzt gleich:

(
    [0] => name
    [1] => parent
    [2] => number
    [3] => chart_id
    [4] => type
    [5] => id
)

6voto

AnthonyS Punkte 2369

Interessant ist auch, dass Sie mit
EXPLAIN table_name was gleichbedeutend ist mit DESCRIBE table_name y SHOW COLUMNS FROM table_name obwohl EXPLAIN wird üblicherweise verwendet, um Informationen über den Abfrageausführungsplan zu erhalten.

5voto

Andy Hume Punkte 38284

Schauen Sie rein:

mysql_query('DESCRIBE '.$table);

5voto

denny Punkte 1864

In mysql, um Spalten-Details und die Tabellenstruktur durch folgende Schlüsselwörter oder Abfragen zu erhalten

1. DESC table_name

2. DESCRIBE table_name

3. SHOW COLUMNS FROM table_name

4. SHOW create table table_name;

5. EXPLAIN table_name

5voto

Wolf Metzner Punkte 73

Wie wäre es damit:

SELECT @cCommand := GROUP_CONCAT( COLUMN_NAME ORDER BY column_name SEPARATOR ',\n')
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA = 'my_database' AND TABLE_NAME = 'my_table';

SET @cCommand = CONCAT( 'SELECT ', @cCommand, ' from my_database.my_table;');
PREPARE xCommand from @cCommand;
EXECUTE xCommand;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X