mysql_fetch_row()与mysql_fetch_array()的使用介绍

这两个函数,返回的都是一个数组,区别就是第一个函数返回的数组是只包含值,我们只能$row[0],
$row[1],这样以数组下标来读取数据,而mysql_fetch_array()返回的数组既包含第一种,也包含键值
对的形式,我们可以这样读取数据,(假如数据库的字段是 username,passwd):
  $row['username'], $row['passwd']

  而且,如果用($row as $kay => $value)来操作的话,还以直接取得数据库的字段名称。
  更主要的是mysqli是php5提供的新函数库,(i)表示改进,其执行速度更快.

例如:

<?php
//连接到本地mysql数据库,选择test为操作库
$mysqli = mysqli_connect("localhost", "root", "","test", 3306);
//用mysql_query函数从user表里读取数据
$result = mysqli_query($mysqli, "SELECT * FROM userinfo");
while($row = mysqli_fetch_array($result))//通过循环读取数据内容
{
?>
<tr>
  <td align="center" height="19"><?php echo $row["ID"]?></td>
  <td align="center"><?php echo $row["Name"]?></td>
  <td align="center"><?php echo $row["Detail"]?></td>
</tr>
<?php
}
//关闭对数据库的连接
mysqli_free_result($result);
mysqli_close($mysqli);*/
?>

mysql_fetch_array --从结果集中取得一行作为关联数组,或数字数组,或二者兼有

说明array mysql_fetch_array ( resource result [, int result_type])

返回根据从结果集取得的行生成的数组,如果没有更多行则返回 FALSE。
mysql_fetch_array() 是 mysql_fetch_row() 的扩展版本。除了将数据以数字索引方式储存在数组中之外,还可以将数据作为关联索引储存,用字段名作为键名。

如果结果中的两个或以上的列具有相同字段名,最后一列将优先。要访问同名的其它列,必须用该列的数字索引或给该列起个别名。对有别名的列,不能再用原来的列名访问其内容(本例中的 'field')。
例子 1. 相同字段名的查询

代码如下:

select table1.field as foo, table2.field as bar from table1, table2

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

mysql_fetch_array() 中可选的第二个参数 result_type 是一个常量,可以接受以下值:MYSQL_ASSOC,MYSQL_NUM 和 MYSQL_BOTH。本特性是 PHP 3.0.7 起新加的。本参数的默认值是 MYSQL_BOTH。

如果用了 MYSQL_BOTH,将得到一个同时包含关联和数字索引的数组。用 MYSQL_ASSOC 只得到关联索引(如同 mysql_fetch_assoc()那样),用 MYSQL_NUM 只得到数字索引(如同 mysql_fetch_row()那样)。

注: 该函数返回的字段名是大小写敏感的。

例子 2. mysql_fetch_array 使用 MYSQL_NUM

<?php
  mysql_connect("localhost", "mysql_user", "mysql_password") or
    die("Could not connect: " . mysql_error());
  mysql_select_db("mydb");

  $result = mysql_query("SELECT id, name FROM mytable");

  while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
    printf ("ID: %s Name: %s", $row[0], $row[1]);
  }

  mysql_free_result($result);
?>

例子 3. mysql_fetch_array 使用 MYSQL_ASSOC

<?php
  mysql_connect("localhost", "mysql_user", "mysql_password") or
    die("Could not connect: " . mysql_error());
  mysql_select_db("mydb");

  $result = mysql_query("SELECT id, name FROM mytable");

  while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    printf ("ID: %s Name: %s", $row["id"], $row["name"]);
  }
  mysql_free_result($result);
?>

例子 4. mysql_fetch_array 使用 MYSQL_BOTH

<?php
  mysql_connect("localhost", "mysql_user", "mysql_password") or
    die("Could not connect: " . mysql_error());
  mysql_select_db("mydb");

  $result = mysql_query("SELECT id, name FROM mytable");

  while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
    printf ("ID: %s Name: %s", $row[0], $row["name"]);
  }
  mysql_free_result($result);
?>

参见 mysql_fetch_row() 和 mysql_fetch_assoc

mysql_fetch_row -- 从结果集中取得一行作为枚举数组

说明
array mysql_fetch_row ( resource result)
返回根据所取得的行生成的数组,如果没有更多行则返回 FALSE。
mysql_fetch_row() 从和指定的结果标识关联的结果集中取得一行数据并作为数组返回。每个结果的列储存在一个数组的单元中,偏移量从 0 开始。
依次调用 mysql_fetch_row() 将返回结果集中的下一行,如果没有更多行则返回 FALSE。

(0)

相关推荐

  • jquery ajax提交表单数据的两种方式

    之前实现AJAX使用Javascript脚本一个一个敲出来的,很繁琐.学习Jquery之后就感觉实现AJAX并不是那么的困难了,当然除了Jquery框架外还有其它的优秀框架这里我就着重说下比较流行的Jquery.Jquery AJAX提交表单有两种方式,一是url参数提交数据,二是form提交(和平常一样在后台可以获取到Form表单的值).在所要提交的表单中,如果元素很多的话建议用第二种方式进行提交,当然你要是想练练"打字水平"的话用第一种方式提交也未尝不可,相信开发者都不想费白劲吧!

  • php提示Warning:mysql_fetch_array() expects的解决方法

    本文实例讲述了php提示Warning mysql_fetch_array() expects的解决方法,分享给大家供大家参考.具体分析如下: 在mysql数据库连接时碰到Warning: mysql_fetch_array() expects ...错误提示,根据我的经验这个是sql返回的query为空了,我们没有加己判断直接使用了. mysql_fetch_array()函数导致的,下面我们一起来看问题解决方案,我的代码如下: 复制代码 代码如下: include("conn.php&quo

  • mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别

    复制代码 代码如下: <?php $link=mysql_connect('localhost','root',"); mysql_select_db('abc',$link); $sql = "select * from book"; $result = mysql_query($sql); while($row = mysql_fetch_row($result)) { echo $row['cid'].'::'.$row[1].'<br>'; } $r

  • oracle下巧用bulk collect实现cursor批量fetch的sql语句

    在一般的情况下,使用批量fetch的几率并不是很多,但是Oracle提供了这个功能我们最好能熟悉一下,说不定什么时候会用上它. 复制代码 代码如下: declare  cursor c1 is select * from t_depart;  v_depart t_depart%rowtype ;  type v_code_type is table of t_depart.depart_code%type ;  v_code v_code_type ;  type v_name_type is

  • 你不需要jQuery(三) 新AJAX方法fetch()

    XMLHttpRequest来完成ajax有些老而过时了. fetch()能让我们完成类似 XMLHttpRequest (XHR) 提供的ajax功能.它们之间的主要区别是,Fetch API 使用了 Promises,它让接口更简单.简洁,避免了回调的复杂性,省去了使用复杂的 XMLHttpRequest API. 如果你之前未使用过Promises,你应该先看看<JavaScript Promises 用法>这篇文章. 一.基本Fetch用法 让我们先用一个例子来比较一下使用 XMLHt

  • 用mysql_fetch_array()获取当前行数据的方法详解

    同mysql_fetch_row()类似,函数mysql_fetch_array()也是获取结果集中当前行数据,并在调用后自动滑向下一行.其定义如下. 复制代码 代码如下: array mysql_fetch_array(int result, int [result_type]) 参数说明如下.(1)result:由函数mysql_query()或mysql_db_query()返回的结果标识,用来指定所要获取的数据的SQL语句类型.(2)result_type:用于指定结果集类型,可选,取值

  • 基于JQuery框架的AJAX实例代码

    index.html 复制代码 代码如下: <html> <head> <title>jQuery Ajax 实例演示</title> </head> <script src="./js/jquery.js" type="text/javascript"></script> <script type="text/javascript"> $(docum

  • 深入mysql_fetch_row()与mysql_fetch_array()的区别详解

    这两个函数,返回的都是一个数组,区别就是第一个函数返回的数组是只包含值,我们只能$row[0],$row[1],这样以数组下标来读取数据,而mysql_fetch_array()返回的数组既包含第一种,也包含键值对的形式,我们可以这样读取数据,(假如数据库的字段是 username,passwd): $row['username'], $row['passwd']而且,如果用($row as $kay => $value)来操作的话,还以直接取得数据库的字段名称.更主要的是mysqli是php5

  • 深入理解用mysql_fetch_row()以数组的形式返回查询结果

    同mysql_result()一样,mysql_fetch_row()也可以用来获取查询结果集,其区别在于函数的返回值不是一个字符串,而是一个数组.函数定义如下. 复制代码 代码如下: array mysql_fetch_row(int result) 参数说明如下.result:由函数mysql_query()或mysql_db_query()返回的结果标识,用来指定所要获取的数据的SQL语句类型.函数返回值如下.成功:一个数组,该数组包含了查询结果集中当前行数据信息,数组下标范围0-记录属性

  • Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结

    详细解读Jquery各Ajax函数: $.get(),$.post(),$.ajax(),$.getJSON() 一,$.get(url,[data],[callback]) 说明:url为请求地址,data为请求数据的列表,callback为请求成功后的回调函数,该函数接受两个参数,第一个为服务器返回的数据,第二个参数为服务器的状态,是可选参数. 而其中,服务器返回数据的格式其实是字符串形势,并不是我们想要的json数据格式,在此引用只是为了对比说明 复制代码 代码如下: $.get("dat

随机推荐