Hmm for the previous comment, note that SHOW FIELDS is an alias of SHOW COLUMNS. Very useful if you need to search the mysql-documentation. Here is the link anyway...
http://www.mysql.com/doc/en/SHOW_DATABASE_INFO.html
(PHP 4, PHP 5)
mysql_field_type — Liefert den Typ des spezifizierten Feldes aus einem Ergebnis
Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen bietet der Ratgeber MySQL: Auswahl einer API. Alternativen zu dieser Funktion umfassen:
mysql_field_type() ist ähnlich wie die Funktion mysql_field_name(). Die Argumente sind identisch, aber stattdessen wird der Typ des Feldes zurückgegeben.
result
Das Ergebnis Ressource, das ausgewertet wird. Dieses Ergebnis kommt von einem Aufruf von mysql_query().
field_offset
Der numerische Offset des Feldes.
Der field_offset
beginnt bei 0
. Falls
field_offset
nicht existiert, wird eine Warnung der Stufe
E_WARNING
erzeugt.
Der zurückgegebene Feldtyp ist einer von "int"
,
"real"
, "string"
,
"blob"
und anderen, wie in der » MySQL-Dokumentation weiter ausgeführt.
Beispiel #1 mysql_field_type()-Beispiel
<?php
mysql_connect("localhost", "mysql_username", "mysql_password");
mysql_select_db("mysql");
$result = mysql_query("SELECT * FROM func");
$fields = mysql_num_fields($result);
$rows = mysql_num_rows($result);
$table = mysql_field_table($result, 0);
echo "Die '" . $table . "' Tabelle hat " . $fields . " Felder und " . $rows . " Datensätze\n";
echo "Die Tabelle hat folgende Felder:\n";
for ($i=0; $i < $fields; $i++) {
$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 . "\n";
}
mysql_free_result($result);
mysql_close();
?>
Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:
Die Tabelle 'func' hat 4 Felder und 1 Datensätze Die Tabelle hat folgende Felder: string name 64 not_null primary_key binary int ret 1 not_null string dl 128 not_null string type 9 not_null enum
Hinweis:
Für die Abwärtskompatibiliät kann der folgende veraltete Alias verwendet werden: mysql_fieldtype()
Hmm for the previous comment, note that SHOW FIELDS is an alias of SHOW COLUMNS. Very useful if you need to search the mysql-documentation. Here is the link anyway...
http://www.mysql.com/doc/en/SHOW_DATABASE_INFO.html
krang at krang dot org dot uk
Condensed version of what KRANG said.
To get info on the MYSQL field type, use this code
<?
$result = mysql_query("SHOW FIELDS FROM db_name");
$i = 1;
while ($row = mysql_fetch_array($result)) { //go through one field at a time
echo "Field $i: ";
print_r($row) //display all information about A field which can be accessed thru the "$row" array.
$i++;
}
?>
Will display something like:
Field 1: Array ( [Field] => SN [Type] => mediumint(8) unsigned [Null] => [Key] => PRI [Default] => [Extra] => auto_increment ) , SN, mediumint(8) unsigned
Field 2: Array ( [Field] => ENTITY_ID [Type] => varchar(20) [Null] => [Key] => [Default] => [Extra] => ) , ENTITY_ID, varchar(20)
Additional to the note below:
If you're using the "SHOW FIELDS" syntax, be sure that you're adding the table name instead of the db name in the "FROM" parameter:
<?php
$result = mysql_query("SHOW FIELDS FROM table");
?>
Also possible:
<?php
$result = mysql_query("SHOW FIELDS FROM table.db");
?>
or this:
<?php
$result = mysql_query("DESCRIBE table");
?>
http://dev.mysql.com/doc/refman/5.1/en/describe.html
In MySQL 4.1.x, the four TEXT types (TINYTEXT, TEXT, MEDIUMTEXT, and LONGTEXT) return 'blob" as field types, not "string".
For version 4.3.4, types returned are:
STRING, VAR_STRING: string
TINY, SHORT, LONG, LONGLONG, INT24: int
FLOAT, DOUBLE, DECIMAL: real
TIMESTAMP: timestamp
YEAR: year
DATE: date
TIME: time
DATETIME: datetime
TINY_BLOB, MEDIUM_BLOB, LONG_BLOB, BLOB: blob
NULL: null
Any other: unknown
The field type returns what PHP classifies the data found in the field, not how it is stored in the database; use the following example to retrieve the MySQL information about the field....
$USERNAME = '';
$PASSWORD = '';
$DATABASE = '';
$TABLE_NAME = '';
mysql_connect('localhost', $USERNAME, $PASSWORD)
or die ("Could not connect");
$result = mysql_query("SHOW FIELDS FROM $DATABASE.$TABLE_NAME");
$i = 0;
while ($row = mysql_fetch_array($result)) {
echo $row['Field'] . ' ' . $row['Type'];
}