PHP 7.1.0 Released

mysql_result

(PHP 4, PHP 5)

mysql_result結果データを得る

警告

この拡張モジュールは PHP 5.5.0 で非推奨になり、PHP 7.0.0 で削除されました。 MySQLi あるいは PDO_MySQL を使うべきです。詳細な情報は MySQL: API の選択それに関連する FAQ を参照ください。 この関数の代替として、これらが使えます。

説明

string mysql_result ( resource $result , int $row [, mixed $field = 0 ] )

MySQL の結果セットからひとつのセルの内容を取得します。

大量の結果セットで作業を行う際は、行全体を取り込む関数のうちひとつを 使用することを検討するべきです(以下で説明します)。 これらの関数は一回の関数コールで複数のセルの内容を返すので、 mysql_result() よりもかなり高速です。 また、フィールド引数としてオフセット数値を指定する方が フィールド名やテーブル名.フィールド名のように指定するよりも かなり高速です。

パラメータ

result

評価された結果 リソース。 この結果は、mysql_query() のコールにより得られたものです。

row

結果から取得する行の番号。行番号は 0 からはじまります。

field

取得したいフィールド名またはフィールドのオフセット。

フィールドのオフセット、フィールド名またはテーブル名.フィールド名を 指定可能です。カラム名のエイリアスが定義されている ('select foo as bar from...')場合、そのカラム名の代わりに エイリアスを使用してください。指定しなかった場合は最初のフィールドを 取得します。

返り値

成功した場合に MySQL 結果セットのひとつのセルの内容、 失敗した場合に FALSE を返します。

例1 mysql_result() の例

<?php
$link 
mysql_connect('localhost''mysql_user''mysql_password');
if (!
$link) {
    die(
'Could not connect: ' mysql_error());
}
if (!
mysql_select_db('database_name')) {
    die(
'Could not select database: ' mysql_error());
}
$result mysql_query('SELECT name FROM work.employee');
if (!
$result) {
    die(
'Could not query:' mysql_error());
}
echo 
mysql_result($result2); // 3 番目の employee の name を出力する

mysql_close($link);
?>

注意

注意:

mysql_result() は、 結果セットを処理するほかの関数と混用することはできません。

参考

add a note add a note

User Contributed Notes 6 notes

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
-1
adam dot chou at gmail dot com
8 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
-2
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
-2
v dot teemu at gmail dot com
2 months ago
I was also looking for mysqli replacement for getting first row, when query is known to return just 1 value. It seems this is simple:

echo(mysql_result($result, 0));

becomes

echo($result->fetch_row()[0]);

alternatively

if ($row = $result->fetch_row()) {
  echo($row[0]);
}
up
-8
raz0 at NOSPAM dot worldonline dot dk
13 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
-15
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