mysql_result

(PHP 4, PHP 5)

mysql_result取得结果数据

说明

mixed mysql_result ( resource $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()

add a note add a note

User Contributed Notes 5 notes

up
6
adam dot chou at gmail dot com
7 years ago
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()
up
4
harmmeiier at gmail dot com
2 years ago
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.
up
1
freedman at FreeFormIT dot com
1 year ago
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];
    }
}
up
-4
raz0 at NOSPAM dot worldonline dot dk
12 years ago
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);
up
-5
bruce at kaskubar dot com
5 years ago
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.
To Top