介绍
在使用 MySQL 查询时,我们通常会用 PHP 作为后端语言。而在 PHP 中,我们通常会使用 mysql_fetch_array
、mysql_fetch_assoc
和 mysql_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_array
、mysql_fetch_assoc
和 mysql_fetch_object
这三个函数的使用方法。在它们的使用中,需要根据查询结果的需求不同选择适当的函数和参数。同时,值得注意的是,这三个函数都已经在PHP 5.5.0中被废弃,在PHP 7.0.0中已经被移除,因此建议使用 mysqli_fetch_***
函数代替。