站内搜索

MySQL数据库函数详解(3)

(11) object mysql_fetch_field(int result [,int col_num]);

   返回结果集中给定列的相关元数据信息,如果没有这样的列,则返回假。如果省略col_num,则对mysql_fetch_field()的后继调用返回结果集后续列的信息。如果不再有剩余的列。则返回值为假。如果指定了col_num,则其取值范围为0到mysql_num_fields()-1。在此情况下,mysql_num_fields()返回给定列的相关信息,如果col_num超出范围,返回假。

<?php

$link=mysql_pconnect("localhost","sunsoft","suixiang")
or die("Could not connect");

mysql_select_db("stamp_db") or die("Could not select database");


$query="SELECT * FROM president";

$result=mysql_query($query) or die("Query failed");

for($i=0;$i<mysql_num_fields($result);$i++)

{

printf("information for column %d:<BR>

",$i);

$meta=mysql_fetch_field($result);

if(!$meta)

{

print("No information available<BR>

");

continue;

}

print("<PRE>

");

printf("blob: %s

",$meta->blob);

printf("max_length: %s

",$meta->max_length);

printf("multiple_key: %s

",$meta->multiple_key);

printf("name: %s

",$meta->name);

printf("not_null: %s

",$meta->not_null);

printf("numeric: %s

",$meta->numeric);

printf("primary_key: %s

",$meta->primary_key);

printf("table: %s

",$meta->table);

printf("type: %s

",$meta->type);

printf("unique_key: %s

",$meta->unique_key);

printf("unsigned: %s

",$meta->unsigned);

printf("zerofill: %s

",$meta->zerofill);

print("</PRE>

");

}

?>

(12) array mysql_fetch_lengths(int result);

   本函式将 mysql_fetch_row() 处理过的最后一列资料的各栏位资料最大长度放在阵列变数之中。若执行失败则传回 false 值。传回阵列的第一笔资料索引值是 0。

<?php

$link=mysql_pconnect("localhost","sunsoft","suixiang")
or die("Could not connect");

mysql_select_db("stamp_db") or die("Could not select database");


$query="SELECT * FROM president" or die("Query failed");

$row_num=0;

while(mysql_fetch_row($result))

{

++$row_num;

printf("Lengths of values in row %d:<BR>

",$row_num);

$len=mysql_fetch_lengths($result);

if(!$len)

{

print("No information available<BR>

");

break;

}

print("<PRE>

");

for($i=0;$i<mysql_num_fields($result);$i++)

printf("Column %d: %s

",$i,$len[$i]);

print("</PRE>

");

}

?>


(13) object mysql_fetch_object(int result_id [, int result_typ]);

   本函式用来将查询结果 result 拆到物件变数中。使用方法和 mysql_fetch_array() 几乎相同,不同的地方在于本函式传回资料是物件而不是阵列。若 result 没有资料,则传回 false 值。另外值得注意的地方是,取回的物件资料的索引只能是文字而不能用数字,这是因为物件的特性。物件资料的特性中所有的属性(property) 名称都不能是数字,因此只好乖乖使用文字字串当索引了。
   参数 result_typ是一个常数值,有以下几种常数 MYSQL_ASSOC、MYSQL_NUM 与 MYSQL_BOTH。关于速度方面,本函式的处理速度几乎和mysql_fetch_row() 及 mysql_fetch_array() 二函式差不多,要用哪个函式还是看使用的需求决定。

<?php

$link=mysql_pconnect("localhost","sunsoft","suixiang")
or die("Could not connect");

mysql_select_db("stamp_db") or die("Could not select database");


$query="SELECT last_name,first_name FROM president";

$result=mysql_query($query) or die("Query failed");

while($row=mysql_fetch_object($result))

printf("%s %s<BR>

",$row->last_name,$row->first_name);

mysql_free_result($result);

?>

(14) array mysql_fetch_row(int result);

   作为一个数组返回给定结果集的下一行,如果没有更多的行,则返回假。
   列值可作为数组元素访问,在0到mysql_num_fields()-1范围内使用列索引。

<?php

$link=mysql_pconnect("localhost","sunsoft","suixiang")
or die("Could not connect");

mysql_select_db("stamp_db") or die("Could not select database");


$query="SELECT last_name,first_name FROM president";

$result=mysql_query($query) or die("Query failed");

while($row=mysql_fetch_row($result))

printf("%s %s<BR>

",$row[0],$row[1]);

mysql_free_result($result);

?>


(15) string mysql_field_name(int result, int field_index);

   返回结果集的给定列的名称。
col_num 的范围为0到mysql_num_fields()-1.

<?php

$link=mysql_pconnect("localhost","sunsoft","suixiang")
or die("Could not connect");

mysql_select_db("stamp_db") or die("Could not select database");


$query="SELECT * FROM president";

$result=mysql_query($query) or die("Query failed");

for($i=0;$i<mysql_num_fields($result);$i++)

{

printf("Name of column %d:",$i);

$name=mysql_field_name($result,$i);

if(!$name)

print("No name available<BR>

");

else

print("$name<BR>

");

}

?>

  • 上一篇:MySQL数据库函数详解(4)
  • 下一篇:MySQL数据库函数详解(2)