1

调用 mysql_fetch_field 时,结果有一个名为“type”的属性。我看到了诸如“字符串”之类的东西,它是一种 PHP 类型,还有“blob”,它是一种 MySQL 类型。此函数返回的可能类型是否有权威且详尽的列表?

PHP 文档充其量是模糊的。我需要知道我涵盖了所有可能性。我确实设法为http://www.php.net/manual/en/function.mysql-field-type.php找到了一些文档,它做得更好:“返回的字段类型将是“int”之一, “real”、“string”、“blob”和其他……”

它指向我的 MySQL 文档。在那里,似乎要我开始查看 C 头文件,因为它所说的只是“当前列的 MYSQL_FIELD 结构”。

4

3 回答 3

1

这里

blob - 包含或返回二进制长对象的表达式的列。这包括所有 BLOB 或 TEXT 类型的列。

日期 - 日期列。返回日期值的表达式的类型为 int、real 或 string,具体取决于返回的值。

datetime - DATETIME 列。返回日期时间值的表达式的类型为 int、real 或字符串,具体取决于返回的值。

int - 包含或返回整数数据的表达式的列。这包括所有 INT 类型的列。

null - 返回 NULL 的表达式。

real - 包含或返回浮点数的表达式的列。这包括 DECIMAL、FLOAT 和 DOUBLE 列类型。

string - CHAR、ENUM、SET 或 VARCHAR 列,或返回字符数据的表达式。

注意:
即使表达式返回的字符数超过 CHAR/VARCHAR 列的最大长度 255 个字符,返回的类型也是字符串而不是 blob,如您所料。

时间 - 时间列。返回时间值的表达式的类型为实数或字符串,具体取决于返回的值。

时间戳 - TIMESTAMP 列。返回时间戳值的表达式是 int 类型。

年 - 年列。返回年份值的表达式是 int 类型。

unknown - 与 mysql_fetch_field() 已知的任何类型都不匹配的类型。这种类型的出现可能表明 MySQL 的版本比 PHP 的版本更新。


这里来自 Zak Greant 编辑的“PHP Functions Essential Reference”一书 摘自 Zak Greant 编辑的《PHP Functions Essential Reference》一书

于 2014-11-27T06:40:25.063 回答
1

取自 PHP: http: //php.net/manual/en/mysqli.constants.php#constantmysqli-group-flag

0    MYSQLI_TYPE_DECIMAL: Field is defined as DECIMAL
1    MYSQLI_TYPE_CHAR: Field is defined as TINYINT. For CHAR, see MYSQLI_TYPE_STRING
2    MYSQLI_TYPE_SHORT: Field is defined as SMALLINT
3    MYSQLI_TYPE_LONG: Field is defined as INT
4    MYSQLI_TYPE_FLOAT: Field is defined as FLOAT
5    MYSQLI_TYPE_DOUBLE: Field is defined as DOUBLE
6    MYSQLI_TYPE_NULL: Field is defined as DEFAULT NULL
7    MYSQLI_TYPE_TIMESTAMP: Field is defined as TIMESTAMP
8    MYSQLI_TYPE_LONGLONG: Field is defined as BIGINT
9    MYSQLI_TYPE_INT24: Field is defined as MEDIUMINT
10   MYSQLI_TYPE_DATE: Field is defined as DATE
11   MYSQLI_TYPE_TIME: Field is defined as TIME
12   MYSQLI_TYPE_DATETIME: Field is defined as DATETIME
13   MYSQLI_TYPE_YEAR: Field is defined as YEAR
14   MYSQLI_TYPE_NEWDATE: Field is defined as DATE
16   MYSQLI_TYPE_BIT: Field is defined as BIT (MySQL 5.0.3 and up)
246  MYSQLI_TYPE_NEWDECIMAL: Precision math DECIMAL or NUMERIC field (MySQL 5.0.3 and up)
247  MYSQLI_TYPE_ENUM: Field is defined as ENUM
248  MYSQLI_TYPE_SET: Field is defined as SET
249  MYSQLI_TYPE_TINY_BLOB: Field is defined as TINYBLOB
250  MYSQLI_TYPE_MEDIUM_BLOB: Field is defined as MEDIUMBLOB
251  MYSQLI_TYPE_LONG_BLOB: Field is defined as LONGBLOB
252  MYSQLI_TYPE_BLOB: Field is defined as BLOB
253  MYSQLI_TYPE_VAR_STRING: Field is defined as VARCHAR
254  MYSQLI_TYPE_STRING: Field is defined as CHAR or BINARY
255  MYSQLI_TYPE_GEOMETRY: Field is defined as GEOMETRY
于 2014-12-11T11:26:58.987 回答
0

请参阅http://php.net/manual/en/function.mysql-fetch-field.php,它提供了一些有用的信息。我认为类型只会是常见的类型,例如 int、float、string 或 blob。

于 2013-09-08T18:52:53.627 回答