从结果集中取得一行作为对象返回

# mysql_fetch_object

(PHP 4, PHP 5)

mysql_fetch_object — 从结果集中取得一行作为对象返回

警告

本扩展自 PHP 5.5.0 起已废弃，并在自 PHP 7.0.0 开始被移除。应使用 MySQLi 或 PDO_MySQL 扩展来替换之。参见 MySQL：选择 API 指南来获取更多信息。用以替代本函数的有：

- mysqli_fetch_object()
- PDOStatement::fetch() with `mode` as `PDO::FETCH_OBJ`

### 说明

function mysql_fetch_object(resource `$result`, string `$class_name` = ?, array `$params` = ?): object

返回一个对象，其属性与获取的行相对应，并将内部数据指针向前移动。

### 参数

`result`
  resource 型的结果集。此结果集来自对 mysql_query() 的调用。
`class_name`
  要实例化、设置属性并返回的类的名称，如果不指定，默认返回 stdClass 对象。
`params`
  可选 array 数组参数，会传递给 `class_name` 类的构造函数。

### 返回值

返回根据所取得的行生成的对象 object，如果没有更多行则返回 `false`。

### 示例

示例 #1 mysql_fetch_object() example

    <?php
    mysql_connect("hostname", "user", "password");
    mysql_select_db("mydb");
    $result = mysql_query("select * from mytable");
    while ($row = mysql_fetch_object($result)) {
        echo $row->user_id;
        echo $row->fullname;
    }
    mysql_free_result($result);
    ?>

示例 #2 mysql_fetch_object() example

    <?php
    class foo {
        public $name;
    }

    mysql_connect("hostname", "user", "password");
    mysql_select_db("mydb");

    $result = mysql_query("select name from mytable limit 1");
    $obj = mysql_fetch_object($result, 'foo');
    var_dump($obj);
    ?>

### 注释

> 注意: Performance
> 速度上，本函数和 mysql_fetch_array() 一样，也几乎和 mysql_fetch_row() 一样快（差别很不明显）。

> 注意: mysql_fetch_object() 和 mysql_fetch_array() 类似，只有一点区别 - 返回一个对象而不是数组。间接地也意味着只能通过字段名来访问数组，而不是偏移量（数字是合法的属性名）。

> 注意: 此函数返回的字段名大小写敏感。

> 注意: 此函数将 NULL 字段设置为 PHP `null` 值。

### 参见

- mysql_fetch_array() - 从结果集中取得一行作为关联数组
- mysql_fetch_assoc() - 从结果集中取得一行作为关联数组
- mysql_fetch_row() - 从结果集中取得一行作为枚举数组
- mysql_data_seek() - 移动内部结果的指针
- mysql_query() - 发送一条 MySQL 查询

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open