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);
?>
运行输出:
测试代码二(使用第 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;
}
?> |