ScotlandPHP

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(
'Ошибка соединения: ' mysql_error());
}
if (!
mysql_select_db('database_name')) {
    die(
'Ошибка выбора базы данных: ' mysql_error());
}
$result mysql_query('SELECT name FROM work.employee');
if (!
$result) {
    die(
'Ошибка выполнения запроса:' mysql_error());
}
echo 
mysql_result($result2); // выведет имя третьего сотрудника

mysql_close($link);
?>

Примечания

Замечание:

Вызовы функции mysql_result() не должны смешиваться с другими функциями, работающими с результатом запроса.

Смотрите также

  • mysql_fetch_row() - Обрабатывает ряд результата запроса и возвращает массив с числовыми индексами
  • mysql_fetch_array() - Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба
  • mysql_fetch_assoc() - Возвращает ряд результата запроса в качестве ассоциативного массива
  • mysql_fetch_object() - Обрабатывает ряд результата запроса и возвращает объект

add a note add a note

User Contributed Notes 6 notes

up
9
freedman at FreeFormIT dot com
2 years 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
-3
adam dot chou at gmail dot com
9 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
3 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
-5
v dot teemu at gmail dot com
1 year 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
-14
raz0 at NOSPAM dot worldonline dot dk
14 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
-20
bruce at kaskubar dot com
6 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