文字

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()

用户评论:

[#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);

上一篇: 下一篇: