©
This document uses PHP Chinese website manual Release
(PHP 4, PHP 5)
mysql_result — 取得结果数据
$result
, int $row
[, mixed $field
] )mysql_result() 返回 MySQL 结果集中一个单元的内容。字段参数可以是字段的偏移量或者字段名,或者是字段表点字段名(tablename.fieldname)。如果给列起了别名('select foo as bar from...'),则用别名替代列名。
当作用于很大的结果集时,应该考虑使用能够取得整行的函数(在下边指出)。这些函数在一次函数调用中返回了多个单元的内容,比 mysql_result() 快得多。此外注意在字段参数中指定数字偏移量比指定字段名或者 tablename.fieldname 要快得多。
调用 mysql_result() 不能和其它处理结果集的函数混合调用。
Example #1 mysql_result() 例子
<?php
$link = mysql_connect ( "localhost" , "mysql_user" , "mysql_password" )
or die( "Could not connect: " . mysql_error ());
$result = mysql_query ( "SELECT name FROM work.employee" )
or die( "Could not query: . mysql_error());
echo mysql_result( $result ,2); // outputs third employee's name
mysql_close( $link );
?>
推荐使用高性能的替代函数: mysql_fetch_row() , mysql_fetch_array() , mysql_fetch_assoc() 和 mysql_fetch_object() 。
[#1] freedman at FreeFormIT dot com [2015-02-08 10:08:50]
here's a rough replacement using mysqli:
if (!function_exists('mysql_result')) {
function mysql_result($result, $number, $field=0) {
mysqli_data_seek($result, $number);
$row = mysqli_fetch_array($result);
return $row[$field];
}
}
[#2] harmmeiier at gmail dot com [2014-06-11 03:30:38]
An example of how to easily port this to mysqli would be nice instead of some links to functions that don't really do what this function does.
[#3] bruce at kaskubar dot com [2011-04-29 06:30:02]
The warning against mixing the use of mysql_result with other result set functions is a bit generic. More specifically, mysql_result alters the result set's internal row pointer (at least in a LAMP environment). This is anything but obvious as the nature of the function is random access for grabbing a quick byte. Using mysql_data_seek after some mysql_result calls, before going into a mysql_fetch_array loop, will set things straight.
[#4] adam dot chou at gmail dot com [2008-10-06 14:49:54]
mysql_result() will throw E_WARNING if mysql_query returns 0 rows. This is unlike any of the mysql_fetch_* functions so be careful of this if you have E_WARNING turned on in error_reporting(). You might want to check mysql_num_rows() before calling mysql_result()
[#5] raz0 at NOSPAM dot worldonline dot dk [2003-08-23 10:42:47]
If you want to fetch the result from a mysql query similar to one of these two queries...
$query = mysql_query("SELECT COUNT(*) FROM table");
$query = mysql_query("SELECT LAST_INSERT_ID()");
... you would use mysql_result() like shown below to retrieve the output as an int.
$result = mysql_result($query, 0, 0);