425 Stimmen

Tabellenspaltennamen in MySQL abrufen?

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

2voto

Ad Kahn Punkte 491

Das hat bei mir funktioniert

$sql = "desc MyTableName";
$result = @mysql_query($sql);
while($row = @mysql_fetch_array($result)){
    echo $row[0]."<br>";
}

2voto

David M Punkte 153

Mysqli fetch_field() hat bei mir funktioniert:

if ($result = $mysqli -> query($sql)) {
  // Get field information for all fields
  while ($fieldinfo = $result -> fetch_field()) {
    printf("Name: %s\n", $fieldinfo -> name);
    printf("Table: %s\n", $fieldinfo -> table);
    printf("Max. Len: %d\n", $fieldinfo -> max_length);
  }
  $result -> free_result();
}

Fuente: https://www.w3schools.com/pHP/func_mysqli_fetch_field.asp

2voto

thundorstorm Punkte 49

Der einfachste Weg, wenn man Ergebnisse mit assoc lädt, ist folgender:

$sql = "SELECT p.* FROM (SELECT 1) as dummy LEFT JOIN `product_table` p on null";
$q = $this->db->query($sql);
$column_names = array_keys($q->row);

Wenn Sie ein einzelnes Ergebnis mit dieser Abfrage laden, erhalten Sie ein Array mit den Tabellenspaltennamen als Schlüssel und null als Wert. Z.B..

Array(
'product_id' => null,
'sku' => null,
'price' => null,
...
)

Danach können Sie die Namen der Tabellenspalten einfach mit der php-Funktion array_keys($result) ermitteln

1voto

Hussnain sheikh Punkte 165

Ich habe ein einfaches PHP-Skript geschrieben, um Tabellenspalten über PHP abzurufen: Zeige_Tabellenspalten.php

<?php
$db = 'Database'; //Database name
$host = 'Database_host'; //Hostname or Server ip
$user = 'USER'; //Database user
$pass = 'Password'; //Database user password
$con = mysql_connect($host, $user, $pass);
if ($con) {
    $link = mysql_select_db($db) or die("no database") . mysql_error();
    $count = 0;
    if ($link) {
        $sql = "
            SELECT column_name
            FROM   information_schema.columns
            WHERE  table_schema = '$db'
                   AND table_name = 'table_name'"; // Change the table_name your own table name
        $result = mysql_query($sql, $con);
        if (mysql_query($sql, $con)) {
            echo $sql . "<br> <br>";
            while ($row = mysql_fetch_row($result)) {
                echo "COLUMN " . ++$count . ": {$row[0]}<br>";
                $table_name = $row[0];
            }
            echo "<br>Total No. of COLUMNS: " . $count;
        } else {
            echo "Error in query.";
        }
    } else {
        echo "Database not found.";
    }
} else {
    echo "Connection Failed.";
}
?>

Viel Spaß!

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