PHP Conference Nagoya 2025

mysql_result

(PHP 4, PHP 5)

mysql_resultObtener datos de resultado

Advertencia

Esta extensión fue declarada obsoleta en PHP 5.5.0 y eliminada en PHP 7.0.0. En su lugar debería utilzarse las extensiones MySQLi o PDO_MySQL. Véase también la guía MySQL: elegir una API. Las alternativas a esta función son:

Descripción

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

Recupera el contenido de una celda de un conjunto de resultados de MySQL.

Cuando se esté trabajando con conjuntos de resultados grandes, se debería considerar usar una de las funciones que obtienen una fila completa (especificadas más abajo). Debido a que estas funciones retornan el contenido de múltiples celdas en una única llamada a función, son MUCHO MÁS rápidas que mysql_result(). Además, se ha de tener en cuenta que la especificación de un índice numérico para el campo pasado como argumento es mucho más rápido que especificar un nombre de campo o el argumento nombre_tabla.nombre_campo.

Parámetros

result

El resultado resource que está siendo evaluado. Este resultado proviene de una llamada a mysql_query().

row

El número de fila del conjunto de resultados que está siendo recuperado. El número de filas empieza a partir de 0.

field

El nombre o el índice del campo que está siendo recuperado.

Puede ser el índice del campo, el nombre del campo, o el nombre de la tabla punto nombre del campo (nombre_tabla.nombre_campo). Si se ha utilizado un alias para el nombre de la columna ('select foo as bar from...'), utilice el alias en lugar del nombre del campo. Si no está definido, se recuperará el primer campo.

Valores devueltos

El contenido de una celda de un conjunto de resultados de MySQL en caso de éxito, o false en caso de fallo.

Ejemplos

Ejemplo #1 Ejemplo de mysql_result()

<?php
$enlace
= mysql_connect('anfitrión_mysql', 'usuario_mysql', 'contraseña_mysql');
if (!
$enlace) {
die(
'No se pudo conectar: ' . mysql_error());
}
if (!
mysql_select_db('nombre_base_datos')) {
die(
'No se pudo seleccionar la base de datos: ' . mysql_error());
}
$resultado = mysql_query('SELECT name FROM work.employee');
if (!
$resultado) {
die(
'No se pudo consultar:' . mysql_error());
}
echo
mysql_result($resultado, 2); // imprime el nombre del tercer empleado

mysql_close($enlace);
?>

Notas

Nota:

Las llamadas a mysql_result() no deberían ser mezcladas con llamadas a otras funciones que manejen conjuntos de resultados.

Ver también

add a note

User Contributed Notes 4 notes

up
18
freedman at FreeFormIT dot com
9 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
1
bob dot schuon at loungelizard dot com
5 years ago
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];
}
up
1
mark at pnod dot co dot uk
1 year ago
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];
up
-3
v dot teemu at gmail dot com
8 years 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]);
}
To Top