mysql_result
(PHP 4, PHP 5)
mysql_result — Возвращает данные результата запроса
Описание
Возвращает содержимое одного поля из набора результата 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($result, 2); // выведет имя третьего сотрудника
mysql_close($link);
?>
Примечания
Замечание:
Вызовы функции mysql_result() не должны смешиваться с другими функциями, работающими с результатом запроса.
Смотрите также
- mysql_fetch_row() - Обрабатывает ряд результата запроса и возвращает массив с числовыми индексами
- mysql_fetch_array() - Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба
- mysql_fetch_assoc() - Возвращает ряд результата запроса в качестве ассоциативного массива
- mysql_fetch_object() - Обрабатывает ряд результата запроса и возвращает объект
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Расширения для работы с базами данных
- Расширения для работы с базами данных отдельных производителей
- MySQL Drivers and Plugins
- Оригинальное API MySQL
- mysql_affected_rows
- mysql_client_encoding
- mysql_close
- mysql_connect
- mysql_create_db
- mysql_data_seek
- mysql_db_name
- mysql_db_query
- mysql_drop_db
- mysql_errno
- mysql_error
- mysql_escape_string
- mysql_fetch_array
- mysql_fetch_assoc
- mysql_fetch_field
- mysql_fetch_lengths
- mysql_fetch_object
- mysql_fetch_row
- mysql_field_flags
- mysql_field_len
- mysql_field_name
- mysql_field_seek
- mysql_field_table
- mysql_field_type
- mysql_free_result
- mysql_get_client_info
- mysql_get_host_info
- mysql_get_proto_info
- mysql_get_server_info
- mysql_info
- mysql_insert_id
- mysql_list_dbs
- mysql_list_fields
- mysql_list_processes
- mysql_list_tables
- mysql_num_fields
- mysql_num_rows
- mysql_pconnect
- mysql_ping
- mysql_query
- mysql_real_escape_string
- mysql_result
- mysql_select_db
- mysql_set_charset
- mysql_stat
- mysql_tablename
- mysql_thread_id
- mysql_unbuffered_query
Коментарии
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];
}
}
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]);
}
This function accounts for the ability of the original function to accept "table_name.field_name" entries as well as just the field name:
function mysqli_result($res, $row, $field=0) {
$result->data_seek($row);
$data = $result->fetch_array();
$field_name = $field;
if ( is_string($field) ) {
$fields_array = explode(".", $field);
$array_len = count($fields_array);
if ($array_len > 1) {
$field_name = $fields_array[array_len - 1];
} else {
$field_name = $fields_array[0];
}
}
return $data[$field_name];
}
To replace a row count e.g.
$querystring = "SELECT COUNT(*) FROM table WHERE column1 = 'EXAMPLE'";
$total_records = mysql_result(mysql_query($querystring,$connection),0);
use mysqli_fetch_row :
$querystring = "SELECT COUNT(*) FROM table WHERE column1 = 'EXAMPLE'";
$rowcount = mysqli_fetch_row(mysqli_query($connection,$querystring));
$total_records = $rowcount[0];