mysql_fetch_array vs mysql_fetch_assoc vs mysql_fetch_object?

介绍

在使用 MySQL 查询时,我们通常会用 PHP 作为后端语言。而在 PHP 中,我们通常会使用 mysql_fetch_arraymysql_fetch_assocmysql_fetch_object 这三个函数来获取查询结果。

mysql_fetch_array

mysql_fetch_array 函数会将查询结果作为一个数组返回。数组的下标可以是数字索引,也可以是字段名(关联索引),取决于传入的第二个参数的不同。下面是该函数的语法:

$result = mysql_fetch_array($query_result [, $result_type = MYSQL_BOTH])

默认获取数字索引和关联索引

不传入第二个参数时,默认获取数字索引和关联索引都会被返回。

$query_result = mysql_query("SELECT * FROM users");

while($record = mysql_fetch_array($query_result)) {

echo $record['id'] . " " . $record['name'] . " " . $record[1] . "<br>";

}

上述代码展示了使用 mysql_fetch_array 函数默认获取数字索引和关联索引的情况。其中,$record['id']$record[0] 的值是相等的。

只获取数字索引

如果想只获取数字索引的值,可以传入 MYSQL_NUM 作为第二个参数。

$query_result = mysql_query("SELECT * FROM users");

while($record = mysql_fetch_array($query_result, MYSQL_NUM)) {

echo $record[0] . " " . $record[1] . "<br>";

}

只获取关联索引

如果想只获取关联索引的值,可以传入 MYSQL_ASSOC 作为第二个参数。

$query_result = mysql_query("SELECT * FROM users");

while($record = mysql_fetch_array($query_result, MYSQL_ASSOC)) {

echo $record['id'] . " " . $record['name'] . "<br>";

}

mysql_fetch_assoc

mysql_fetch_assoc 函数和 mysql_fetch_array 函数的区别在于,它只返回关联索引。下面是该函数的语法:

$record = mysql_fetch_assoc($query_result)

只获取关联索引

如上述代码所示,mysql_fetch_assoc 函数只返回关联索引。

$query_result = mysql_query("SELECT * FROM users");

while($record = mysql_fetch_assoc($query_result)) {

echo $record['id'] . " " . $record['name'] . "<br>";

}

mysql_fetch_object

mysql_fetch_object 函数会返回一个对象,对象的属性名即为查询语句中的字段名。

$record = mysql_fetch_object($query_result)

获取对象

如上述代码所示,mysql_fetch_object 函数返回一个对象,查询结果中的字段名即为对象的属性名。

$query_result = mysql_query("SELECT id, name FROM users");

while($record = mysql_fetch_object($query_result)) {

echo $record->id . " " . $record->name . "<br>";

}

总结

通过上述代码,我们可以学习和理解 mysql_fetch_arraymysql_fetch_assocmysql_fetch_object 这三个函数的使用方法。在它们的使用中,需要根据查询结果的需求不同选择适当的函数和参数。同时,值得注意的是,这三个函数都已经在PHP 5.5.0中被废弃,在PHP 7.0.0中已经被移除,因此建议使用 mysqli_fetch_*** 函数代替。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

数据库标签