当前位置:首页 > PHP教程 > php应用 > 列表

php操作mysql获取select 结果的几种方法

发布:smiling 来源: PHP粉丝网  添加日期:2021-08-18 11:11:52 浏览: 评论:0 

这篇文章主要介绍了php操作mysql获取select 结果的几种方法,需要的朋友可以参考下

如果用了 MYSQL_BOTH,将得到一个同时包含关联和数字索引的数组。

用 MYSQL_ASSOC 只得到关联索引(如同mysql_fetch_assoc() 那样),用 MYSQL_NUM 只得到数字索引(如同 mysql_fetch_row 那样)。

1. mysql_fetch_array($rs,MYSQL_ASSOC)

  1. [@test01 model]# php test.php  
  2. Array  
  3. (  
  4.  [name] => hellokitty  
  5.  [addr] => i dont kno  
  6. )  
  7. [@test01 model]# more test.php  
  8. <?php  
  9.  $link=mysql_connect("10.12.136.181","hello","hello");  
  10.  if(!$link)  
  11.   echo "没有连接成功!";  
  12.  mysql_select_db("hhhhh"$link);  
  13.  $q = "SELECT * FROM hello";  
  14.  mysql_query("SET NAMES GB2312");  
  15.  $rs = mysql_query($q);  
  16.  if(!$rs)  
  17.  {  
  18.   die("Valid result!");  
  19.  }  
  20.  $result=mysql_fetch_array($rs,MYSQL_ASSOC);  
  21.  print_r($result);  
  22.  mysql_free_result($rs);  
  23. ?> 

2.mysql_fetch_array($rs,MYSQL_BOTH);获取数组

  1. [@test01 model]# more test.php  
  2. <?php  
  3.  $link=mysql_connect("10.12.136.181","hello","hello");  
  4.  if(!$link)  
  5.   echo "没有连接成功!";  
  6.  mysql_select_db("hhhhh"$link);  
  7.  $q = "SELECT * FROM hello";  
  8.  mysql_query("SET NAMES GB2312");  
  9.  $rs = mysql_query($q);  
  10.  if(!$rs)  
  11.  {  
  12.   die("Valid result!");  
  13.  }  
  14.  $result=mysql_fetch_array($rs,MYSQL_ASSOC);  
  15.  print_r($result);  
  16.  mysql_free_result($rs);  
  17. ?>  
  18. [@test01 model]# vim test.php  
  19. [@test01 model]# php test.php  
  20. Array  
  21. (  
  22.  [0] => hellokitty  
  23.  [name] => hellokitty  
  24.  [1] => i dont kno  
  25.  [addr] => i dont kno  
  26. )  
  27. [@test01 model]# 

3.mysql_fetch_array($rs,MYSQL_NUM) 获取数组

  1. [@test01 model]# php test.php  
  2. Array  
  3. (  
  4.  [0] => hellokitty  
  5.  [1] => i dont kno  
  6. )  
  7. [@test01 model]# more test.php  
  8. <?php  
  9.  $link=mysql_connect("10.12.136.181","hello","hello");  
  10.  if(!$link)  
  11.   echo "没有连接成功!";  
  12.  mysql_select_db("hhhhh"$link);  
  13.  $q = "SELECT * FROM hello";  
  14.  mysql_query("SET NAMES GB2312");  
  15.  $rs = mysql_query($q);  
  16.  if(!$rs)  
  17.  {  
  18.   die("Valid result!");  
  19.  }  
  20.  $result=mysql_fetch_array($rs,MYSQL_NUM);  
  21.  print_r($result);  
  22.  mysql_free_result($rs);  
  23. ?>  
  24. [@test01 model]# 

下面是补充:

php获取结果集的几个方法

  1. <?php  
  2.  $conn=mysql_connect("localhost","root","");  
  3.  $select=mysql_select_db("books",$conn);  
  4.   $query="insert into computers(name,price,publish_data) ";  
  5.  $query.="values('JSP',28.00,'2008-11-1')";  
  6.  $query="select * from computers";  
  7.  $result=mysql_query($query);  
  8.   //以下是使用mysql_result()函数来获取到查询结果  
  9.  $num=mysql_num_rows($result);  
  10.  for($rows_count=0;$rows_count<$num;$rows_count++){  
  11.  echo "书名:".mysql_result($result,$rows_count,"name");  
  12.  echo "价格:".mysql_result($result,$rows_count,"price");  
  13.  echo "出版日期:".mysql_result($result,$rows_count,"publish_data")."<br>";  
  14.  }  
  15.   //以下是使用mysql_fetch_row()函数来获取到查询结果  
  16.   while($row=mysql_fetch_row($result))  
  17.  {  
  18.  echo "书号:".$row[0]."<br>";  
  19.  echo "书名:".$row[1]."<br>";  
  20.  echo "价格:".$row[2]."<br>";  
  21.  echo "出版日期:".$row[3]."<br>";  
  22.  echo "<br>";  
  23.  }  
  24.  //以下是使用mysql_fetch_array()函数来获取到查询结果  
  25.  while($row=mysql_fetch_array($result))  
  26.  {  
  27.  echo "书号:".$row[0]."<br>";  
  28.  echo "书名:".$row[1]."<br>";  
  29.  echo "价格:".$row["price"]."<br>";  
  30.  echo "出版日期:".$row["publish_data"]."<br>";  
  31.  echo "<br>";  
  32.  } 
  33.  
  34. //mysql_fetch_assoc()同mysql_fetch_array($result,MYSQL_ASSOC)一样 
  35.  
  36. while($row = mysql_fetch_assoc($res)){ 
  37.  
  38.  echo $row['price'].'::'.$row['publish_data'].”; 
  39. //$row[0]不能取值 
  40.  
  41.  //以下是使用mysql_fetch_object()函数来获取到查询结果  
  42.  while($row=mysql_fetch_object($result))  
  43.  {  
  44.  echo "书号:".$row->id."<br>";  
  45.  echo "书名:".$row->name."<br>";  
  46.  echo "价格:".$row->price."<br>";  
  47.  echo "出版日期:".$row->publish_data."<br>";  
  48.  echo "<br>";   
  49.  }  
  50. ?> 

综合比较

本节主要介绍了获取查询结果集的4个函数,此处对它们进行综合比较。

● mysql_result():优点在于使用方便;而缺点在于功能少,一次调用只能获取结果数据集中的一行记录,对较大型的数据库效率较低。

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

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

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

后3个函数的共同点在于,都是取得当前行的数据,然后自动滑向后一行,有时候,希望控制滑动的行数,这是常常搭配使用的一个函数是mysql_data_seek(),其定义为:

int mysql_data_seek(int result_identifier,int row_number)

调用该函数可以在结果集中向后滑动row_number行,在下一次调用mysql_fetch_*函数时,读取的将是向后滑动row_number行后的记录。

Tags: php操作mysql select

分享到: