Gibt es eine Möglichkeit, den Spaltennamen einer Tabelle in MySQL mit PHP zu erfassen?
Antworten
Zu viele Anzeigen?
Ad Kahn
Punkte
491
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
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
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ß!
- See previous answers
- Weitere Antworten anzeigen