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

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

用 MYSQL_ASSOC 只得到关联索引(如同mysql_fetch_assoc() 那样),

用 MYSQL_NUM 只得到数字索引(如同 mysql_fetch_row 那样)。

1. mysql_fetch_array($rs,MYSQL_ASSOC)

[@test01 model]# php test.php
Array
(
 [name] => hellokitty
 [addr] => i dont kno
)
[@test01 model]# more test.php
<?php
 $link=mysql_connect("10.12.136.181","hello","hello");
 if(!$link)
  echo "没有连接成功!";
 mysql_select_db("hhhhh", $link);
 $q = "SELECT * FROM hello";
 mysql_query("SET NAMES GB2312");
 $rs = mysql_query($q);
 if(!$rs)
 {
  die("Valid result!");
 }
 $result=mysql_fetch_array($rs,MYSQL_ASSOC);
 print_r($result);
 mysql_free_result($rs);
?> 

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

[@test01 model]# more test.php
<?php
 $link=mysql_connect("10.12.136.181","hello","hello");
 if(!$link)
  echo "没有连接成功!";
 mysql_select_db("hhhhh", $link);
 $q = "SELECT * FROM hello";
 mysql_query("SET NAMES GB2312");
 $rs = mysql_query($q);
 if(!$rs)
 {
  die("Valid result!");
 }
 $result=mysql_fetch_array($rs,MYSQL_ASSOC);
 print_r($result);
 mysql_free_result($rs);
?>
[@test01 model]# vim test.php
[@test01 model]# php test.php
Array
(
 [0] => hellokitty
 [name] => hellokitty
 [1] => i dont kno
 [addr] => i dont kno
)
[@test01 model]# 

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

[@test01 model]# php test.php
Array
(
 [0] => hellokitty
 [1] => i dont kno
)
[@test01 model]# more test.php
<?php
 $link=mysql_connect("10.12.136.181","hello","hello");
 if(!$link)
  echo "没有连接成功!";
 mysql_select_db("hhhhh", $link);
 $q = "SELECT * FROM hello";
 mysql_query("SET NAMES GB2312");
 $rs = mysql_query($q);
 if(!$rs)
 {
  die("Valid result!");
 }
 $result=mysql_fetch_array($rs,MYSQL_NUM);
 print_r($result);
 mysql_free_result($rs);
?>
[@test01 model]# 

下面是补充:

php获取结果集的几个方法

<?php
 $conn=mysql_connect("localhost","root","");
 $select=mysql_select_db("books",$conn);
  $query="insert into computers(name,price,publish_data) ";
 $query.="values('JSP',28.00,'2008-11-1')";
 $query="select * from computers";
 $result=mysql_query($query);
  //以下是使用mysql_result()函数来获取到查询结果
 $num=mysql_num_rows($result);
 for($rows_count=0;$rows_count<$num;$rows_count++){
 echo "书名:".mysql_result($result,$rows_count,"name");
 echo "价格:".mysql_result($result,$rows_count,"price");
 echo "出版日期:".mysql_result($result,$rows_count,"publish_data")."<br>";
 }
  //以下是使用mysql_fetch_row()函数来获取到查询结果
  while($row=mysql_fetch_row($result))
 {
 echo "书号:".$row[0]."<br>";
 echo "书名:".$row[1]."<br>";
 echo "价格:".$row[2]."<br>";
 echo "出版日期:".$row[3]."<br>";
 echo "<br>";
 }
 //以下是使用mysql_fetch_array()函数来获取到查询结果
 while($row=mysql_fetch_array($result))
 {
 echo "书号:".$row[0]."<br>";
 echo "书名:".$row[1]."<br>";
 echo "价格:".$row["price"]."<br>";
 echo "出版日期:".$row["publish_data"]."<br>";
 echo "<br>";
 }

//mysql_fetch_assoc()同mysql_fetch_array($result,MYSQL_ASSOC)一样

while($row = mysql_fetch_assoc($res)){

 echo $row['price'].'::'.$row['publish_data'].”;
} //$row[0]不能取值

 //以下是使用mysql_fetch_object()函数来获取到查询结果
 while($row=mysql_fetch_object($result))
 {
 echo "书号:".$row->id."<br>";
 echo "书名:".$row->name."<br>";
 echo "价格:".$row->price."<br>";
 echo "出版日期:".$row->publish_data."<br>";
 echo "<br>";
 }
?>

综合比较

本节主要介绍了获取查询结果集的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行后的记录。

(0)

相关推荐

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

    如果用了 MYSQL_BOTH,将得到一个同时包含关联和数字索引的数组. 用 MYSQL_ASSOC 只得到关联索引(如同mysql_fetch_assoc() 那样), 用 MYSQL_NUM 只得到数字索引(如同 mysql_fetch_row 那样). 1. mysql_fetch_array($rs,MYSQL_ASSOC) [@test01 model]# php test.php Array ( [name] => hellokitty [addr] => i dont kno )

  • JavaScript获取select中text值的方法

    本文实例讲述了JavaScript获取select中text值的方法.分享给大家供大家参考,具体如下: 别的不说,先看代码: 方法一: <select name="parent_id" onchange="setTitleAndLinkByGoodsCategory(this.value,this.options[this.selectedIndex].text);" > <option value="0">请选择商品分类

  • PHP实现获取ip地址的5种方法,以及插入用户登录日志操作示例

    本文实例讲述了PHP实现获取ip地址的5种方法,以及插入用户登录日志操作.分享给大家供大家参考,具体如下: php 获取ip地址的5种方法,插入用户登录日志实例,推荐使用第二种方法 <?php //方法1: $ip = $_SERVER["REMOTE_ADDR"]; echo $ip; //方法2: $ip = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SE

  • PHP获取对象属性的三种方法实例分析

    本文实例讲述了PHP获取对象属性的三种方法.分享给大家供大家参考,具体如下: 今天查看yii源码,发现yii\base\Model中的attribute()方法是通过反射获取对象的public non-static属性.记得以前看到的代码都是用get_object_vars()这个函数获取的,昨天查看php文档,发现还可以用foreach遍历对象属性.于是写个例子练习下. class TestClass { private $a; protected $b; public $c; public

  • mysql大批量插入数据的4种方法示例

    前言 本文主要给大家介绍了关于mysql大批量插入数据的4种方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 方法一:循环插入 这个也是最普通的方式,如果数据量不是很大,可以使用,但是每次都要消耗连接数据库的资源. 大致思维如下 (我这里写伪代码,具体编写可以结合自己的业务逻辑或者框架语法编写) for($i=1;$i<=100;$i++){ $sql = 'insert...............'; //querysql } foreach($arr as $key =

  • Android 获取 usb 权限的两种方法

    前言: 最近工作上遇到几个USB模块在android平台上适配使用的情况,所以要用到USB权限获取问题 ##USB权限获取有以下2种方式: 一.直接在AndroidManifest.xml文件中进行如下配置: <activity android:name=".DemoCustomAndroidUSBActivity" android:label="@string/app_name"> <intent-filter> <action an

  • 浅析mysql迁移到clickhouse的5种方法

    数据迁移需要从mysql导入clickhouse, 总结方案如下,包括clickhouse自身支持的三种方式,第三方工具两种. create table engin mysql CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] ( name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1] [TTL expr1], name2 [type2] [DEFAULT|MATERIAL

  • 防止MySQL重复插入数据的三种方法

    新建表格 CREATE TABLE `person` ( `id` int NOT NULL COMMENT '主键', `name` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '姓名', `age` int NULL DEFAULT NULL COMMENT '年龄', `address` varchar(512) CHARACTER SET utf8 COLLATE utf8_bin N

  • 前端JS获取URL参数的4种方法总结

    目录 前言 方法1: 字符串 split 方法 方法2: 利用 URLSearchParams 方法 方法3: 利用正则匹配方法 方法4: 使用第三方库 qs 总结: 前言 对于前端来说,无论是在面试或者工作中都可能遇到处理 url 参数的问题,使用框架进行项目开发时或许不用,有自带的获取参数方式,但是抛开使用框架来说我们也可以使用原生 js 方式或者借用第三方库来实现参数的获取并对象化,下面就对具体用法进行介绍整理. 方法1: 字符串 split 方法 因为一个 url 地址是字符串形式的,所

  • MySQL过滤重复数据的两种方法示例

    目录 方法1:加关键字 DISTINCT 方法2:用GROUP By 分组 最后 方法1:加关键字 DISTINCT 在mysql中,可以利用“SELECT”语句和“DISTINCT”关键字来进行去重查询,过滤掉重复的数据,语法“SELECT DISTINCT 字段名 FROM 数据表名;”. DISTINCT 关键字的语法格式为: SELECT DISTINCT <字段名> FROM <表名>; 其中,“字段名”为需要消除重复记录的字段名称,多个字段时用逗号隔开. 示例 -- 示

随机推荐