PHP Doku:: Liefert den Typ eines Feldes in einem Ergebnis - function.mysql-field-type.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzDatenbankerweiterungenAnbieterspezifische DatenbankerweiterungenMySQLMySQL Funktionenmysql_field_type

Ein Service von Reinhard Neidl - Webprogrammierung.

MySQL Funktionen

<<mysql_field_table

mysql_free_result>>

mysql_field_type

(PHP 4, PHP 5)

mysql_field_type Liefert den Typ eines Feldes in einem Ergebnis

Beschreibung

string mysql_field_type ( resource $Ergebnis , int $Feldoffset )

mysql_field_type() ist ähnlich zu mysql_field_name(). Die Argumente sind identisch, aber stattdessen wird der Typ des Feldes zurückgegeben. Dieser kann "int", "real", "string", "blob", oder ein anderer Typ sein. Eine ausführliche Beschreibung aller Typen finden Sie in der » MySQL Dokumentation.

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($result0);
echo 
"Die Tabelle '".$table."'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 angeführte Beispiel führt zu dieser Ausgabe:

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

Für Abwärtskompatibilität kann mysql_fieldtype() verwendet werden. Diese Funktion ist jedoch veraltet.


8 BenutzerBeiträge:
- Beiträge aktualisieren...
fred at dinkler dot com
8.02.2007 20:52
In MySQL 4.1.x, the four TEXT types (TINYTEXT, TEXT, MEDIUMTEXT, and LONGTEXT) return 'blob" as field types, not "string".
c dot futterlieb at bluewin dot ch
10.12.2006 15:06
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
fusionstream at gmail dot com
17.09.2006 18:19
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)

18.02.2006 20:52
This function is broken in 4.4.1 (works fine in 4.3.X).
http://bugs.php.net/35536
harald at weinreichs dot de
6.06.2005 19:02
The note blow seems incomplete/incorrect. For php 4.3 and mysql 4.x the returned values are:

CHAR, VARCHAR, TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT, ENUM, SET: string
TINYINT, SMALLINT, MEDIUMINT, INT, INTEGER, BIGINT: int
FLOAT, DOUBLE, DECIMAL, NUMERIC: real
TIMESTAMP: timestamp
YEAR: year
DATE: date
TIME: time
DATETIME: datetime
TINYBLOB, MEDIUMBLOB, LONGBLOB, BLOB: blob

if mysql-field-type seems to return the wrong values, you may encounter an compatibility problem of mysql, php and the libraries you use. Try reinstalling php and mysql.
mariob at menta dot net
7.11.2003 21:21
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
swalif_mesa at hotmail dot com
10.07.2003 7:38
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
10.03.2002 15:13
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'];
}



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)