曲径通幽论坛

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

[数据库] mysql_fetch_object() -- 取得记录内容

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34387
跳转到指定楼层
楼主
发表于 2012-6-20 19:16:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
mysql_fetch_object() 函数也是个用来获取得记录内容的函数,然后将记录指针移到下一条。如果读不到记录,那么函数返回 FALSE,语法如下:
[Plain Text] 纯文本查看 复制代码
object mysql_fetch_object( resource $result[, string $class_name[, array $params]] )

第 1 个参数 $result 是个必须的参数,表示资源标识符。
第 2 个参数 $class_name 是个可选参数,是自定义的类名,当使用该参数时,类中的方法(函数)就可以直接使用从数据库中返回的数据。
第 3 个参数 $params 个可选的数组类型参数,它用来传递给第 2 个参数类对象中的构造函数。

函数返回的是 object 类型,记录中的每个字段会变成该对象的属性 ,所以在读取字段内容时,只能使用字段名。
测试代码一:
[PHP] 纯文本查看 复制代码
<?php
        require_once("dbfuncs.php");
        
        $link = create_connection();
        
        $sql = "SELECT * FROM `pw_members` WHERE `uid` < 5";
        
        $result = execute_sql("pw87", $sql, $link);
        
        while ($obj = mysql_fetch_object($result)) {
                echo $row->uid . "  ";
                echo $obj->username . "<br>";
        }       

        mysql_free_result($result);
?>

运行输出:
1  admin
2  bibiyaki
4  张无忌

测试代码二(使用第 2 个参数,自定义一个类):
[PHP] 纯文本查看 复制代码
<?php

        class Test {
                public $var1;

                function show() {
                        return "uid: {$this->uid}";
                }
                function set() {
                        $var1 = $this->username;
                        echo "username: " . $var1;
                }
        }
        

        require_once("dbfuncs.php");

        $link = create_connection();

        $sql = "SELECT * FROM `pw_members` WHERE `uid` < 5";

        $result = execute_sql("pw87", $sql, $link);

        while ($obj = mysql_fetch_object($result, 'Test')) {
                echo $obj->show() . "  ";
                $obj->set();
                echo "<br>";
        }

        mysql_free_result($result);
?>

运行输出:
uid: 1  username: admin
uid: 2  username: bibiyaki
uid: 4  username: 张无忌

上面使用到的 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-21 07:11 , Processed in 0.064876 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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