Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Ja, der Titel sagt es ja schon... ich suche eine Funktion, die äquivalent zu mysql_field_type(), mysql_field_name() etc. arbeitet und mir den Kommentarwert eines MySQL-Feldes liefert. Also soll die Funktion bei folgender Tabelle:


Name   Type        NULL   Kommentar  Extras

==========================================

ID     int(5)      No     ID-Wert    auto_increment

Name   varchar(50) Yes    Nachname 

VName  varchar(50) Yes    Vorname   

... die Werte "ID-Wert", "Nachname" und "Vorname" liefern...

ich kann im PHP-Handbuch aber keine entsprechende Funktion finden... oder übersehe ich da was?!

Danke schonmal

Geschrieben

die doku zu mysql 5.0 und 5.1 (link) meint:

20.3. The INFORMATION_SCHEMA COLUMNS Table

The COLUMNS table provides information about columns in tables.

COLUMN_COMMENT Comment

SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT

FROM INFORMATION_SCHEMA.COLUMNS

WHERE table_name = 'tbl_name'

[AND table_schema = 'db_name']

[AND column_name LIKE 'wild']

ich denke mal, dass man COLUMN_COMMENT auch in die obige query einbauen kann.

s'Amstel

Geschrieben

ich denke mal, dass man COLUMN_COMMENT auch in die obige query einbauen kann

s'Amstel

Ja... nur leider habe ich MySQL 4.x :(

Sorry, dass ich (mal wieder) vergessen habe das zu erwähnen... *opsi*

Geschrieben

Anmerkung: Die Funktion mysql_list_fields() ist veraltet. Stattdessen ist es vorzuziehen mit der Funktion mysql_query() den SQL-Befehl SHOW COLUMNS FROM table LIKE 'name' auszuführen.


<?php
$result = mysql_query("SHOW COLUMNS FROM sometable");
if (!$result) {
echo 'Abfrage konnte nicht ausgeführt werden: ' . mysql_error();
exit;
}
if (mysql_num_rows($result) > 0) {
while ($row = mysql_fetch_assoc($result)) {
print_r($row);
}
}
?>[/PHP]

Geschrieben

Hey,

das liefert auch nicht das Kommentarfeld zurück, sondern nur sowas:

array(12) {

  [0]=>

  string(4) "VName"

  ["Field"]=>

  string(4) "VName"

  [1]=>

  string(12) "varchar(100)"

  ["Type"]=>

  string(12) "varchar(100)"

  [2]=>

  string(3) "YES"

  ["Null"]=>

  string(3) "YES"

  [3]=>

  string(0) ""

  ["Key"]=>

  string(0) ""

  [4]=>

  NULL

  ["Default"]=>

  NULL

  [5]=>

  string(0) ""

  ["Extra"]=>

  string(0) ""

}

... also alles bis auf den Kommentar :(

Geschrieben
Ja... nur leider habe ich MySQL 4.x

dass der kommentar bei dir nicht aufscheint, liegt scheinbar an deiner mysql-version. verwendest du 4.0 oder 4.1?

für mysql 4.0 gilt

"The FULL keyword can be used from MySQL 3.23.32 on. It causes the output to include the privileges you have for each column. As of MySQL 4.1, FULL also causes any per-column comments to be displayed."

für 5.0/5.1 gilt:

"The FULL keyword causes the output to include the privileges you have as well as any per-column comments for each column."

s'Amstel

Geschrieben

Seit welcher Version kann man denn jeder Spalte einen Kommentar geben? Ich kenne das bisher nur, dass man der Tabelle einen Kommentar zuweisen kann, aber nicht den Spalten. Kann dazu auch keine wirklichen Informationen in der Manual von MySQL finden.

Okay nun habe ich mal geschaut und diese Spaltenkommentare gibt es nur in der INFORMATION_SCHEMA Tabelle. Auf diese Datenbank kann jeder Benutzer zugreifen. Von daher könnte man vllt. einen Datenbanken übergreifenden JOIN machen, denn:

SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT

  FROM INFORMATION_SCHEMA.COLUMNS

  WHERE table_name = 'tbl_name'

  [AND table_schema = 'db_name']

  [AND column_name LIKE 'wild']

Man kann das nämlich nicht über die eigentliche Tabelle laufen lassen. Ein JOIN über die eigentliche Datenbank.Tabelle zu INFORMATION_SCHEMA.Columns und es sollte gehen. Am besten schreibst du dir da ne Funktion für, damit es nicht zu umständlich wird.

Geschrieben
Seit welcher Version kann man denn jeder Spalte einen Kommentar geben? Ich kenne das bisher nur, dass man der Tabelle einen Kommentar zuweisen kann, aber nicht den Spalten. Kann dazu auch keine wirklichen Informationen in der Manual von MySQL finden.

Guck mal in das Bild im Anhang...

Das ist von MySQL 4.1 :)

ps.: SHOW FULL COLUMNS geht leider auch nicht :(

post-17426-14430447304867_thumb.jpg

Geschrieben

o_O komisch bei mir gibts sowas nicht und ich habe phpMyAdmin 2.6.7 und MySQL 5.0. Hmmm...

// Edit:

Ich habe mich vertan. Ich habe phpMyAdmin 2.7.0-rc1. Aber ich habe lediglich folgende Felder:

- Feld

- Typ

- Dokumentation

- Länge/Set

- Kollation

- Attribute

- Null

- Standard

- Extra

Ich habe nun mal einen Freund gefragt, der sowieso schon ein recht exotisches phpMyAdmin* hat, aber der hat das auch nicht. Wie bekommt man das denn rein?

*) Er hat sogar eine Tabellenübersicht im Dropdown im linken Frame und kann direkt auf Tabellen springen.

Geschrieben
Wie bekommt man das denn rein?

Das kann ich auch nicht sagen - zumindest habe ich das bisher immer auf allen MySQL 4.x Tabellen gehabt. Auch mit mysql-front kann ich das Kommentar-Feld sehen... *kopf kratz*

Geschrieben

Heute im Programmieren-Unterricht habe ich einen in meiner Klasse gesehen, der gerade phpMyAdmin offen hatte. Ich bin bei ihm dann mal auf Tabelle erstellen gegangen und da gab es dann noch die Felder: Kommentare, MIME-Type, Datentypumwandlung. Er hatte phpMyAdmin 2.7.0, wie ich auch. Vllt. liegt es auch am Versionsunterschied rc1 und final, aber das glaube ich weniger, da es ein recht grosser Unterschied wäre, zudem werden bei rc-Versionen kaum noch Sachen geändert. Nun bleibt weiterhin die Frage, wie man das reinbekommt.

Nebenbei ist mir nun auch mal aufgefallen, dass es schon die Version 2.8.x gibt. Vllt. besorg ich mir die mal und teste es dabei.

Oder liegt es an XAMPP? Das haben viele aus meiner Klasse. Ich dagegen beschaffe mir alle Komponenten seperat. Ich weiss ja nicht wie es bei euch ist.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...