mysql_field_type

(PHP 4, PHP 5)

mysql_field_type获取结果中指定字段的类型

警告

此扩展在 PHP 5.5.0 中已弃用,并在 PHP 7.0.0 中被移除。应改为使用 MySQLiPDO_MySQL 扩展。另请参见 MySQL:选择 API 指南。此函数的替代方法包括

描述

mysql_field_type(资源 $result, 整数 $field_offset): 字符串

mysql_field_type()mysql_field_name() 函数类似。参数相同,但返回字段类型。

参数

result

正在评估的结果 资源。此结果来自对 mysql_query() 的调用。

field_offset

数值字段偏移量。 field_offset0 开始。如果 field_offset 不存在,也会发出级别为 E_WARNING 的错误。

返回值

返回的字段类型将是 "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
"您的 '" . $table . "' 表包含 " . $fields . " 个字段和 " . $rows . " 条记录\n";
echo
"该表包含以下字段:\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()

另请参见

添加注释

用户贡献的注释 6 个注释

swalif_mesa at hotmail dot com
21 年前
嗯,对于之前的评论,请注意 SHOW FIELDS 是 SHOW COLUMNS 的别名。如果您需要搜索 MySQL 文档,这非常有用。以下链接是:
https://www.mysqlserver.cn/doc/en/SHOW_DATABASE_INFO.html
fusionstream at gmail dot com
17 年前
krang at krang dot org dot uk
KRANG 所述内容的简化版本。

要获取有关 MYSQL 字段类型的信息,请使用以下代码

<?
$result = mysql_query("SHOW FIELDS FROM db_name");

$i = 1;
while ($row = mysql_fetch_array($result)) { // 逐个字段遍历
echo "字段 $i: ";
print_r($row) // 显示有关一个字段的所有信息,这些信息可以通过 "$row" 数组访问。
$i++;
}
?>

将显示类似于以下内容
字段 1: Array ( [Field] => SN [Type] => mediumint(8) unsigned [Null] => [Key] => PRI [Default] => [Extra] => auto_increment ) , SN, mediumint(8) unsigned
字段 2: Array ( [Field] => ENTITY_ID [Type] => varchar(20) [Null] => [Key] => [Default] => [Extra] => ) , ENTITY_ID, varchar(20)
c dotfutterlieb at bluewin dot ch
17 年前
补充以下说明
如果您使用的是“SHOW FIELDS”语法,请确保在“FROM”参数中添加的是表名而不是数据库名

<?php
$result
= mysql_query("SHOW FIELDS FROM table");
?>

也可以

<?php
$result
= mysql_query("SHOW FIELDS FROM table.db");
?>

或使用此方法

<?php
$result
= mysql_query("DESCRIBE table");
?>
https://dev.mysqlserver.cn/doc/refman/5.1/en/describe.html
mariob at menta dot net
20 年前
对于 4.3.4 版,返回的类型为

STRING、VAR_STRING:字符串
TINY、SHORT、LONG、LONGLONG、INT24:整数
FLOAT、DOUBLE、DECIMAL:实数
TIMESTAMP:时间戳
YEAR:年份
DATE:日期
TIME:时间
DATETIME: 日期时间
TINY_BLOB, MEDIUM_BLOB, LONG_BLOB, BLOB: blob
NULL: 空值
其他任何值: 未知
fred at dinkler dot com
17 年前
在 MySQL 4.1.x 中,四种 TEXT 类型(TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT)返回“blob”作为字段类型,而不是“string”。
krang at krang dot org dot uk
22 年前
字段类型返回 PHP 对字段中找到数据的分类,而不是它在数据库中的存储方式;使用以下示例检索有关字段的 MySQL 信息……

$USERNAME = '';
$PASSWORD = '';

$DATABASE = '';
$TABLE_NAME = '';

mysql_connect('localhost', $USERNAME, $PASSWORD)
or die ("无法连接");

$result = mysql_query("SHOW FIELDS FROM $DATABASE.$TABLE_NAME");

$i = 0;

while ($row = mysql_fetch_array($result)) {
echo $row['Field'] . ' ' . $row['Type'];
}
To Top