PHP Conference Nagoya 2025

mysql_field_type

(PHP 4, PHP 5)

mysql_field_typeObtiene el tipo del campo especificado de un resultado

Advertencia

Esta extensión fue declarada obsoleta en PHP 5.5.0 y eliminada en PHP 7.0.0. En su lugar debería utilzarse las extensiones MySQLi o PDO_MySQL. Véase también la guía MySQL: elegir una API. Las alternativas a esta función son:

Descripción

mysql_field_type(resource $result, int $field_offset): string

mysql_field_type() es similar a la función mysql_field_name(). Los argumentos son idénticos, pero se devuelve en su lugar el tipo de campo.

Parámetros

result

El resultado resource que está siendo evaluado. Este resultado proviene de una llamada a mysql_query().

field_offset

El número del campo a buscar. El valor de field_offset comienza en 0. Si field_offset no existe, un error de nivel E_WARNING es emitido.

Valores devueltos

El tipo de campo devuelto será uno de los siguientes: "int", "real", "string", "blob", y otros tal como se detalla en » la documentación de MySQL.

Ejemplos

Ejemplo #1 Ejemplo de mysql_field_type()

<?php
mysql_connect
("localhost", "nombre_usuario_mysql", "cotraseña_mysql");
mysql_select_db("mysql");
$resultado = mysql_query("SELECT * FROM func");
$campos = mysql_num_fields($resultado);
$filas = mysql_num_rows($resultado);
$tabla = mysql_field_table($resultado, 0);
echo
"Su tabla '" . $tabla . "' tiene " . $campos . " campos y " . $filas . " registro/s\n";
echo
"La tabla tiene los siguientes campos:\n";
for (
$i=0; $i < $campos; $i++) {
$tipo = mysql_field_type($resultado, $i);
$nombre = mysql_field_name($resultado, $i);
$longitud = mysql_field_len($resultado, $i);
$banderas = mysql_field_flags($resultado, $i);
echo
$tipo . " " . $nombre . " " . $longitud . " " . $banderas . "\n";
}
mysql_free_result($resultado);
mysql_close();
?>

El resultado del ejemplo sería algo similar a:

Su tabla 'func' tiene 4 campos y 1 registro/s
La tabla tiene los siguientes campos:
string name 64 not_null primary_key binary
int ret 1 not_null
string dl 128 not_null
string type 9 not_null enum

Notas

Nota:

Por razones de compatibilidad con versiones anteriores, los siguientes alias obsoletos podrían usarse: mysql_fieldtype()

Ver también

add a note

User Contributed Notes 6 notes

up
3
swalif_mesa at hotmail dot com
21 years ago
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
up
2
fusionstream at gmail dot com
18 years ago
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)
up
-1
c dot futterlieb at bluewin dot ch
17 years ago
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
up
-2
mariob at menta dot net
21 years ago
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
up
-3
fred at dinkler dot com
17 years ago
In MySQL 4.1.x, the four TEXT types (TINYTEXT, TEXT, MEDIUMTEXT, and LONGTEXT) return 'blob" as field types, not "string".
up
-5
krang at krang dot org dot uk
22 years ago
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'];
}
To Top