|
|
mysql_field_type (PHP 3, PHP 4, PHP 5) mysql_field_type --
Возвращает тип указанного поля результата запроса.
Описаниеstring mysql_field_type ( resource result, int field_offset )
Функция mysql_field_type() аналогична функции
mysql_field_name(). Аргументы одинаковы, но вместо
имени колонки возвращается её тип. Поля могут быть типов
"int", "real", "string", "blob", а также других, описанных в
документации MySQL.
Пример 1. Пример использования mysql_field_type() |
<?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 "Your '".$table."' table has ".$fields." fields and ".$rows." record(s)\n";
echo "The table has the following fields:\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();
?>
|
Вышеописанный пример выдаст следующий результат:
Your 'func' table has 4 fields and 1 record(s)
The table has the following fields:
string name 64 not_null primary_key binary
int ret 1 not_null
string dl 128 not_null
string type 9 not_null enum |
|
Для совместимости доступна функция
mysql_fieldtype(). Однако, её использование крайне не
рекомендуется.
add a note
User Contributed Notes
mysql_field_type
fred at dinkler dot com
08-Feb-2007 11: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-Dec-2006 06: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-Sep-2006 09: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)
harald at weinreichs dot de
06-Jun-2005 10: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
07-Nov-2003 12: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
krang at krang dot org dot uk
10-Mar-2002 06: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'];
}
ludwigp at bigfoot dot com
17-Aug-2000 07:39
Like mysql_fetch_field, this returns the PHP type, not the MySQL type.
|