Maison > php教程 > php手册 > php中返回查询数据集四种方法

php中返回查询数据集四种方法

WBOY
Libérer: 2016-06-13 10:03:21
original
1060 Les gens l'ont consulté

php中 mysql_result mysql_fetch_row mysql_fetch_array mysql_fetch_object四种函数的详细说明

mysql教程_result():优点在于使用方便;其缺点在于功能少,一次调用只能获取结果数据集中的一行元素,对较大型的数据库教程效率较低;

mysql_result() 函数返回结果集中一个字段的值。

如果成功,则该函数返回字段值。如果失败,则返回 false。

语法
mysql_result(data,row,field)参数 描述
data 必需。规定要使用的结果标识符。该标识符是 mysql_query() 函数返回的。
row 必需。规定行号。行号从 0 开始。
field 可选。规定获取哪个字段。可以是字段偏移值,字段名或 table.fieldname。

如果该参数未规定,则该函数从指定的行获取第一个字段。
 

$con = mysql_connect("localhost", "hello", "321");
if (!$con)
  {
  die('could not connect: ' . mysql_error());
  }

$db_selected = mysql_select_db("test_db", $con);

$sql = "select * from person";
$result = mysql_query($sql,$con);

echo mysql_result($result,0);

mysql_close($con);

?>

mysql_fetch_row():优点在于执行效率在4种方法中最高;不足在于只能用数字作为属性索引来获得属性值,在使用时非常容易出现混淆;

mysql_fetch_row() 函数从结果集中取得一行作为数字数组。

语法
mysql_fetch_row(data)参数 描述
data 必需。要使用的数据指针。该数据指针是从 mysql_query() 返回的结果。

说明
mysql_fetch_row() 从和结果标识 data 关联的结果集中取得一行数据并作为数组返回。每个结果的列储存在一个数组的单元中,偏移量从 0 开始。

依次调用 mysql_fetch_row() 将返回结果集中的下一行,如果没有更多行则返回 false。

返回值
返回根据所取得的行生成的数组,如果没有更多行则返回 false。
例子

$con = mysql_connect("localhost", "hello", "321");
if (!$con)
  {
  die('could not connect: ' . mysql_error());
  }

$db_selected = mysql_select_db("test_db",$con);
$sql = "select * from person where lastname='adams'";
$result = mysql_query($sql,$con);
print_r(mysql_fetch_row($result));

mysql_close($con);
?>输出:

array
(
[0] => adams
[1] => john
[2] => london
)


mysql_fetch_array():执行效率同样高,同mysql_fetch_row()相差无几,并界可以用属性名方式直接获得属性值,因此在实际应用中最常用;

定义和用法
mysql_fetch_array() 函数从结果集中取得一行作为关联数组,或数字数组,或二者兼有

返回根据从结果集取得的行生成的数组,如果没有更多行则返回 false。

语法
mysql_fetch_array(data,array_type)参数 描述
data 可选。规定规定要使用的数据指针。该数据指针是 mysql_query() 函数产生的结果。
array_type 可选。规定返回哪种结果。可能的值:

mysql_assoc - 关联数组
mysql_num - 数字数组
mysql_both - 默认。同时产生关联和数字数组
 
提示和注释
注释:mysql_fetch_array() 是 mysql_fetch_row() 的扩展版本。除了将数据以数字索引方式储存在数组中之外,还可以将数据作为关联索引储存,用字段名作为键名。

提示:有很重要的一点必须指出,用 mysql_fetch_array() 并不明显比用 mysql_fetch_row() 慢,而且还明显提供了更多的值。

注释:本函数返回的字段名是区分大小写的。
例子

$con = mysql_connect("localhost", "hello", "321");
if (!$con)
  {
  die('could not connect: ' . mysql_error());
  }

$db_selected = mysql_select_db("test_db",$con);
$sql = "select * from person where lastname='adams'";
$result = mysql_query($sql,$con);
print_r(mysql_fetch_array($result));

mysql_close($con);
?>输出类似:

array
(
[0] => adams
[lastname] => adams
[1] => john
[firstname] => john
[2] => london
[city] => london
)

mysql_fetch_object():采用了面向对象思想,在设计思路上更为先进,如果习惯于用面向对象的思路来写程序,则会很自地选择它。其次,该方法的优点还体现在,对于结构较为负责的数据结果,在逻辑上更为清晰。

mysql_fetch_object() 函数从结果集(记录集)中取得一行作为对象。

若成功的话,本函数从 mysql_query() 获得一行,并返回一个对象。如果失败或没有更多的行,则返回 false。

语法
mysql_fetch_object(data)参数 描述
data 必需。要使用的数据指针。该数据指针是从 mysql_query() 返回的结果。
提示和注释
注释:每个随后对 mysql_fetch_object() 的调用都会返回记录集中的下一行。

注释:mysql_fetch_object() 与 mysql_fetch_array() 类似,只有一点区别 - 返回的是对象而不是数组。间接地,也意味着只能通过字段名来访问数组,而不是偏移量。
例子

$con = mysql_connect("localhost", "peter", "abc123");
if (!$con)
  {
  die('could not connect: ' . mysql_error());
  }

$db_selected = mysql_select_db("test_db",$con);
$sql = "select * from person";
$result = mysql_query($sql,$con);

while ($row = mysql_fetch_object($result))
  {
  echo $row->firstname . "
";
  }

mysql_close($con);
?>输出:

john
george
thomas

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal