PHP/Informationen über die Datenbank: Unterschied zwischen den Versionen
Michi (Diskussion | Beiträge) (New page: == Feldinformationen == Folgende Funktionen liefern Informationen über die Felder der Ergebnisliste. {| class=wikitable ! Funktion !! Beschreibung |- | <tt>mysql_fetch_fields</tt> || Gi...) |
Michi (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 3: | Zeile 3: | ||
Folgende Funktionen liefern Informationen über die Felder der Ergebnisliste. | Folgende Funktionen liefern Informationen über die Felder der Ergebnisliste. | ||
{| class=wikitable | {| class=wikitable width=100% | ||
! Funktion !! Beschreibung | ! Funktion !! Beschreibung | ||
|- | |- | ||
Zeile 150: | Zeile 150: | ||
Folgende Funktionen liefern Informationen über Datenbanken und Tabellen. | Folgende Funktionen liefern Informationen über Datenbanken und Tabellen. | ||
{| class=wikitable | {| class=wikitable width=100% | ||
! Funktion !! Beschreibung | ! Funktion !! Beschreibung | ||
|- | |- |
Aktuelle Version vom 10. Januar 2009, 18:05 Uhr
Feldinformationen
Folgende Funktionen liefern Informationen über die Felder der Ergebnisliste.
Funktion | Beschreibung | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
mysql_fetch_fields | Gibt ein Objekt zurück, dessen Eigenschaften die des Feldes darstellen. "$result" ist dabei das Ergebnislistenhandle, der optionale Parameter "$offset" bestimmt das Feld innerhalb des aktuellen Datensatzes, über das Informationen geholt werden.
Achtung: Mit diesen Objekteigenschaften werden die definierten Eigenschaften des feldes ermittelt und nicht der tatsächliche oder vermeintliche Zustand . Beispielsweise ist "$fieldobject->unsigned" also "1", wenn das Feld negative Zahlen zulässt; es spielt keine Rolle, ob auch tatsächlich eine negative Zahl darin enthalten ist. | |||||||||||||||||||||||||||
mysql_fetch_length | Gibt ein Array zurück, das Elemente für jede Saplte der Ergebnisliste enthält. Jedes Element stellt dabei die Länge der Spalte in Byte dar. Damit lässt sich der Platzverbrauch oder die Nutzung von Variablen berechnen. Die Funktion kann nur verwendet werden, wenn vorher eine Ergebnisliste erstellt und mit "mysql_fetch_row" ausgelesen wurde. | |||||||||||||||||||||||||||
mysql_field_seek | Setzt den internen Feldzeiger auf ein bestimmtes Feld. Wird dann "mysql_fetch_fields" ohne den optionalen Parameter "$offset" verwendet, so gilt die mit "mysql_field_seek" ausgewählte Spalte.
| |||||||||||||||||||||||||||
mysql_field_name | Gibt nur den Namen eines Feldes zurück. | |||||||||||||||||||||||||||
mysql_field_len | Gibt nur die Spaltenbreite (Anzahl der für die Ausgabe maximal benötigten Zeichen) eines Feldes zurück. | |||||||||||||||||||||||||||
mysql_field_type | Gibt nur den Datentyp eines Feldes zurück. | |||||||||||||||||||||||||||
mysql_field_flag | Gibt nur die zusätzlichen Eigenschaften eines Feldes zurück. Die Flags selbst sind Eigenschaften gemäss folgender Tabelle.
Die Ergebnisliste kann mit der Funktion "explode" in ein Array umgewandelt werden, sodass gezielt einzelne Werte extrahiert werden könne.
|
Das folgende Skript "mysql_fieldinfo.php" zeigt einige dieser Funktionen im Einsatz.
<?php
## Name mysql_fieldinfo.php
include("open.inc.php");
$result = mysql_query("SELECT * FROM address");
$fields = mysql_num_fields($result);
$rows = mysql_num_rows($result);
$i = 0;
$table = mysql_field_table($result, $i);
echo "<p>Die Tabelle \"$table\" hat <b>$fields</b> Felder und ";
echo "<b>$rows</b> Datensätze.</p>\n";
echo "<p>Die Tabelle hat folgende Felder:</p>\n<p>";
while ($i < $fields)
{
$type = mysql_field_type ($result, $i);
$name = mysql_field_name ($result, $i);
$len = mysql_field_len ($result, $i);
$flags = mysql_field_flags ($result, $i);
echo "[" . $type . "] " . $name . " (" . $len . ") " . $flags . "<br />\n";
## Extraktion einzelner Werte
#$flag = explode(" ", $flags);
#echo $flag[1] . "<br />\n";
$i++;
}
echo "</p>\n";
mysql_close($connection);
?>
|
Die Tabelle "address" hat 10 Felder und 14 Datensätze. Die Tabelle hat folgende Felder: [int] custID (21) not_null primary_key auto_increment |
Tabellen- und Datenbankeigenschaften
Folgende Funktionen liefern Informationen über Datenbanken und Tabellen.
Funktion | Beschreibung | |
---|---|---|
mysql_field_table | Gibt den Namen der Tabelle zu einem bekannten Feldnamen zurück. Diese Funktion ist nützlich, wenn in einer "SELECT"-Anweisung mit Aliasen und mehreren Tabellen gearbeitet wird und man nicht mehr weiss, aus welcher Tabelle die Daten stammen.
| |
mysql_list_tables | Ermittelt die Namen der Tabellen einer Datenbank. | |
mysql_tablename | Gibt eine Namensliste zurück. | |
mysql_list_dbs | Ermittelt die Namen der Datenbanken. |
Das folgende Skript "mysql_tablenames.php" gibt eine Liste aller Tabellennamen der aktuellen Datenbank aus.
<?php
## Name mysql_tablenames.php
include("open.inc.php");
$result = mysql_list_tables($database);
$i = 0;
echo "<p>Tabellen in <b>$database</b>:</p>\n";
echo "<p>";
while ($i < mysql_num_rows($result))
{
$tablenames[$i] = mysql_tablename($result, $i);
echo $tablenames[$i] . "<br />\n";
$i++;
}
echo "</p>\n";
mysql_close($connection);
?>
|
Das folgende Skript "mysql_listdbs.php" gibt eine Liste aller Datenbanken auf dem aktuellen MySQL-Server aus.
<?php
## Name mysql_listdbs.php
include("open.inc.php");
$result = mysql_list_dbs($connection);
$i = 0;
echo "<p>Datenbanken auf <b>$server</b>:</p>\n";
echo "<p>";
while ($i < mysql_num_rows($result))
{
$tablenames[$i] = mysql_tablename($result, $i);
echo $tablenames[$i] . "<br />\n";
$i++;
}
echo "</p>\n";
mysql_close($connection);
?>
|