曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 4193|回复: 0
打印 上一主题 下一主题

[数据库] mysql_fetch_array() -- 获取记录内容

[复制链接]

4917

主题

5879

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34382
跳转到指定楼层
楼主
发表于 2012-6-21 17:37:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
mysql_fetch_array() 也是用来读取记录并存放在数组之中的函数(参考另一个函数:
mysql_fetch_row()),然后将记录指针移到下一条记录,如果读不到记录,那么返回 FALSE 。和
mysql_fetch_row() 函数不同的是,
mysql_fetch_row() 在取得字段内容时,字段的序号作为数组的下标,而 mysql_fetch_array() 既可以使用字段序号也可以以字段名作为数组的下标。

mysql_fetch_array() 语法如下:
[Plain Text] 纯文本查看 复制代码
array mysql_fetch_array ( resource $result [, int $ result_type ] )

$result 是必选参数,表示资源标识符。
$result_type 是可选参数,它用来指定取得字段内容的方式,参数值有 MYSQL_NUM , MYSQL_ASSOC,MYSQL_BOTH 。mysql_fetch_array() 和 mysql_fetch_row() 的差别就在于参数上。比如将参数值设置为 MYSQL_NUM ,那么表示只能用字段序号类取得字段内容,这种方式和 mysql_fetch_row() 函数是一样的。如果将参数值设置为 MYSQL_ASSOC ,那么表示只能用字段名来取得字段内容,那么此时函数相当于使用
mysql_fetch_assoc() 函数。如果将参数设置为 MYSQL_BOTH ,那么表示既可以使用字段序号也可以使用字段名来取得字段内容。


测试代码:
[PHP] 纯文本查看 复制代码
<?php
        require_once("dbfuncs.php");
        
        $link = create_connection();
        
        $sql = "SELECT * FROM `pw_members` WHERE `uid` < 10";
        
        $result = execute_sql("pw87", $sql, $link);
        
        while ($memberinfo = mysql_fetch_array($result, MYSQL_NUM)) {
                echo $memberinfo[1] . "<br>";
        }       


        echo "-------------------------------------------" . "<br>";


        mysql_data_seek($result, 0);


        while ($memberinfo = mysql_fetch_array($result, MYSQL_ASSOC)) {
                echo $memberinfo['username'] . "<br>";
        }
        
        echo "-------------------------------------------" . "<br>";


        mysql_data_seek($result, 0);
        while ($memberinfo = mysql_fetch_array($result, MYSQL_BOTH)) {
                echo $memberinfo['username'] . "    " . $memberinfo[1] . "<br>";
        }




?>

运行输出:
adminbibiyaki
张无忌
星凌化心
星鬼
侧身飞翔
我家的小鸟
natu
-------------------------------------------
admin
bibiyaki
张无忌
星凌化心
星鬼
侧身飞翔
我家的小鸟
natu
-------------------------------------------
adminadmin
bibiyaki bibiyaki
张无忌 张无忌
星凌化心 星凌化心
星鬼 星鬼
侧身飞翔侧身飞翔
我家的小鸟 我家的小鸟
natu natu

上面程序中,分别使用了 MYSQL_NUM , MYSQL_ASSOC 和 MYSQL_BOTH 来获取第 1 个字段的内容。没使用一种方法遍历了整个记录后,数据指针已经移到末尾,那么就要用 mysql_data_seek() 函数将指针再次移动到第 0 条记录上,然后再从上至下遍历一遍。

程序中使用到的 dbfuncs.php 文件的内容为:
[PHP] 纯文本查看 复制代码
<?php
function create_connection()
{
    $link = mysql_connect("localhost", "root", "mypassword")
        or die("Can not connect to database<br><br>" . mysql_error());


    mysql_query("SET NAMES utf8");
    return $link;
}


function execute_sql($database, $sql, $link)
{
    $db_selected = mysql_select_db($database, $link)
        or die("Select database failed<br><br>" . mysql_error($link));


    $result = mysql_query($sql, $link);


    return $result;
}
?>
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2024-5-18 02:11 , Processed in 0.060877 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表