downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

mysql_free_result> <mysql_field_table
[edit] Last updated: Fri, 30 Nov 2012

view this page in

mysql_field_type

(PHP 4, PHP 5)

mysql_field_type Pobiera typ podanego pola

Opis

string mysql_field_type ( resource $wynik , int $ofset_pola )

Funkcja mysql_field_type() jest podobna do mysql_field_name(). Argumenty są identyczne, ale zwracany jest typ pola. Będzie to jeden z "int", "real", "string", "blob" lub innych opisanych w dokumentacji » MySQL.

Przykład #1 Typy pól MySQL

<?php
mysql_connect
('localhost','uzytkownik','haslo');
mysql_select_db('baza');
$result mysql_query('SELECT * FROM tabela');
$fields mysql_num_fields($result);
$rows   mysql_num_rows($result);
$table mysql_field_table($result0);
echo 
"Tabela '".$table."' ma ".$fields." pól i ".$rows." wierszy\n";
echo 
"Tabela ma następujące pola:\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";
    
$i++;
}
mysql_free_result($result);
mysql_close();
?>

Powyższy przykład da następujący wynik:

Tabela 'tabela' ma 4 pól i 1 wierszy
Tabela ma następujące pola:
string name 64 not_null primary_key binary
int ret 1 not_null
string dl 128 not_null
string type 9 not_null enum

Aby zachować zgodność z poprzednimi wersjami, można użyć również mysql_fieldtype(). Jest to jednak niezalecane.



mysql_free_result> <mysql_field_table
[edit] Last updated: Fri, 30 Nov 2012
 
add a note add a note User Contributed Notes mysql_field_type - [8 notes]
up
1
Anonymous
7 years ago
This function is broken in 4.4.1 (works fine in 4.3.X).
http://bugs.php.net/35536
up
0
fred at dinkler dot com
6 years ago
In MySQL 4.1.x, the four TEXT types (TINYTEXT, TEXT, MEDIUMTEXT, and LONGTEXT) return 'blob" as field types, not "string".
up
0
c dot futterlieb at bluewin dot ch
6 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
0
fusionstream at gmail dot com
6 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
0
mariob at menta dot net
9 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
0
swalif_mesa at hotmail dot com
9 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
0
krang at krang dot org dot uk
11 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'];
}
up
-1
harald at weinreichs dot de
7 years ago
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.

 
show source | credits | sitemap | contact | advertising | mirror sites