PHP 8.3.4 Released!

mysql_result

(PHP 4, PHP 5)

mysql_resultLiefert eine Spalte aus einem MySQL-Ergebnis

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen bietet der Ratgeber MySQL: Auswahl einer API. Alternativen zu dieser Funktion umfassen:

Beschreibung

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

Gibt den Inhalt einer Spalte aus einer MySQL-Ergebnismenge zurück.

Wenn auf Abfrageergebnisse mit vielen Datensätzen zugegriffen werden soll, sollten Sie Funktionen in Betracht ziehen, die auf ganze Datensätze zugreifen (siehe unten). Diese Funktionen liefern bei einem einzigen Aufruf den Inhalt mehrerer Spalten und sind aus diesem Grund SEHR viel schneller als mysql_result(). Beachten Sie auch, dass die Angabe eines numerischen Offsets für eine Spalte sehr viel schneller ist als die Angabe eines Spaltennamens oder tabellenname.spaltenname.

Parameter-Liste

result

Das Ergebnis Ressource, das ausgewertet wird. Dieses Ergebnis kommt von einem Aufruf von mysql_query().

row

Die Zeilennummer des erhaltenen Ergebnisses. Zeilennummern beginnen mit 0.

field

Der Name oder der Offset der abzurufenden Spalte (Feld).

Dies kann der Offset der Spalte sein, der Name der Spalte oder ein Bezeichner in der Form Tabellenname.Spaltenname. Wurde ein Alias für den Spaltennamen verwendet ('select foo as bar from...'), verwenden Sie stattdessen den Alias. Ist der Wert nicht definiert, wird die erste Spalte zurückgegeben.

Rückgabewerte

Gibt bei Erfolg die Inhalte einer Spalte einer MySQL-Ergebnismenge zurück oder false bei Fehlern.

Beispiele

Beispiel #1 mysql_result()-Beispiel

<?php
$link
= mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!
$link) {
die(
'Keine Verbindung möglich: ' . mysql_error());
}
if (!
mysql_select_db('database_name')) {
die(
'Konnte Datenbank nicht auswählen: ' . mysql_error());
}
$result = mysql_query('SELECT name FROM work.employee');
if (!
$result) {
die(
'Konnte Abfrage nicht ausführen:' . mysql_error());
}
echo
mysql_result($result, 2); // gibt den Namen des dritten Angestellten aus

mysql_close($link);
?>

Anmerkungen

Hinweis:

Aufrufe von mysql_result() sollten nicht mit Aufrufen anderer Funktionen verschachtelt werden, die auch auf das Ergebnis zugreifen.

Siehe auch

add a note

User Contributed Notes 8 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
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
0
bob dot schuon at loungelizard dot com
4 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
-3
v dot teemu at gmail dot com
7 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]);
}
up
-8
harmmeiier at gmail dot com
9 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
-9
adam dot chou at gmail dot com
15 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
-20
bruce at kaskubar dot com
12 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.
up
-31
raz0 at NOSPAM dot worldonline dot dk
20 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);
To Top