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

search for in the

mysqli_result::fetch_fields> <mysqli_result::fetch_field_direct
[edit] Last updated: Fri, 25 May 2012

view this page in

mysqli_result::fetch_field

mysqli_fetch_field

(PHP 5)

mysqli_result::fetch_field -- mysqli_fetch_field結果セットの次のフィールドを返す

説明

オブジェクト指向型

object mysqli_result::fetch_field ( void )

手続き型

object mysqli_fetch_field ( mysqli_result $result )

結果セットから ひとつのカラムの情報をオブジェクトとして返します。この関数を 繰り返しコールすることで、結果セットのすべてのカラムについての情報が 取得可能です。

パラメータ

result

手続き型のみ: mysqli_query()mysqli_store_result() あるいは mysqli_use_result() が返す結果セット ID。

返り値

フィールド定義情報を含むオブジェクトを返します。もし フィールドの情報が取得できない場合は、FALSE を返します。

オブジェクトのプロパティ
プロパティ 説明
name カラムの名前。
orgname もしエイリアスが指定されている場合の、本来の名前。
table フィールドが属するテーブルの名前。
orgtable もしエイリアスが指定されている場合の、本来のテーブル名。
def デフォルト値のために予約済。現在は常に ""。
db データベース (PHP 5.3.6 以降)。
catalog カタログ名。常に "def" (PHP 5.3.6 以降)。
max_length 結果セットにおけるフィールドの最大幅。
length テーブルの定義で指定されているフィールド幅。
charsetnr フィールドの文字セット番号。
flags フィールドのビットフラグを整数型で表す。
type フィールドのデータ型。
decimals フィールドの桁数(integer 型のフィールド)。

例1 オブジェクト指向型

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* 接続状況をチェックします */
if (mysqli_connect_errno()) {
    
printf("Connect failed: %s\n"mysqli_connect_error());
    exit();
}

$query "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if (
$result $mysqli->query($query)) {

    
/* すべてのカラムのフィールド情報を取得します */
    
while ($finfo $result->fetch_field()) {

        
printf("Name:     %s\n"$finfo->name);
        
printf("Table:    %s\n"$finfo->table);
        
printf("max. Len: %d\n"$finfo->max_length);
        
printf("Flags:    %d\n"$finfo->flags);
        
printf("Type:     %d\n\n"$finfo->type);
    }
    
$result->close();
}

/* 接続を閉じます */
$mysqli->close();
?>

例2 手続き型

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* 接続状況をチェックします */
if (mysqli_connect_errno()) {
    
printf("Connect failed: %s\n"mysqli_connect_error());
    exit();
}

$query "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if (
$result mysqli_query($link$query)) {

    
/* すべてのカラムのフィールド情報を取得します */
    
while ($finfo mysqli_fetch_field($result)) {

        
printf("Name:     %s\n"$finfo->name);
        
printf("Table:    %s\n"$finfo->table);
        
printf("max. Len: %d\n"$finfo->max_length);
        
printf("Flags:    %d\n"$finfo->flags);
        
printf("Type:     %d\n\n"$finfo->type);
    }
    
mysqli_free_result($result);
}

/* 接続を閉じます */
mysqli_close($link);
?>

上の例の出力は以下となります。

Name:     Name
Table:    Country
max. Len: 11
Flags:    1
Type:     254

Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

参考



add a note add a note User Contributed Notes mysqli_result::fetch_field
Anonymous 16-Feb-2012 08:20
The constants for the TYPE number returned by fetch_field are enumerated here (MYSQLI_TYPE_*):
http://php.net/manual/en/mysqli.constants.php
iansoko at hotmail dot com 06-Oct-2011 08:24
here are the data types that correspond to the TYPE number returned by fetch_field.

thought i would post this here since i couldn't find the info elsewhere.

numerics
-------------
BIT: 16
TINYINT: 1
BOOL: 1
SMALLINT: 2
MEDIUMINT: 9
INTEGER: 3
BIGINT: 8
SERIAL: 8
FLOAT: 4
DOUBLE: 5
DECIMAL: 246
NUMERIC: 246
FIXED: 246

dates
------------
DATE: 10
DATETIME: 12
TIMESTAMP: 7
TIME: 11
YEAR: 13

strings & binary
------------
CHAR: 254
VARCHAR: 253
ENUM: 254
SET: 254
BINARY: 254
VARBINARY: 253
TINYBLOB: 252
BLOB: 252
MEDIUMBLOB: 252
TINYTEXT: 252
TEXT: 252
MEDIUMTEXT: 252
LONGTEXT: 252
ragtag at hotmail dot com 17-Sep-2008 05:16
The flags used by MySql are:                                                                                                                                           
       NOT_NULL_FLAG = 1                                                                             
       PRI_KEY_FLAG = 2                                                                              
       UNIQUE_KEY_FLAG = 4                                                                           
       BLOB_FLAG = 16                                                                                
       UNSIGNED_FLAG = 32                                                                            
       ZEROFILL_FLAG = 64                                                                            
       BINARY_FLAG = 128                                                                             
       ENUM_FLAG = 256                                                                               
       AUTO_INCREMENT_FLAG = 512                                                                     
       TIMESTAMP_FLAG = 1024                                                                         
       SET_FLAG = 2048                                                                               
       NUM_FLAG = 32768                                                                              
       PART_KEY_FLAG = 16384                                                                         
       GROUP_FLAG = 32768                                                                            
       UNIQUE_FLAG = 65536                                                                           

To test if a flag is set you can use & like so:
<?php
$meta
= $mysqli_result_object->fetch_field();
if (
$meta->flags & 4) {
  echo
'Unique key flag is set';
}
?>

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