PHP Conference Japan 2024

mysql_result

(PHP 4, PHP 5)

mysql_result获取结果数据

警告

此扩展在 PHP 5.5.0 中已弃用,并在 PHP 7.0.0 中移除。应改用 MySQLiPDO_MySQL 扩展。另请参阅 MySQL:选择 API 指南。此函数的替代方案包括

描述

mysql_result(资源 $result, 整数 $row, 混合 $field = 0): 字符串

从 MySQL 结果集中检索一个单元格的内容。

在处理大型结果集时,您应该考虑使用以下列出的其中一个函数来获取整行。由于这些函数在一个函数调用中返回多个单元格的内容,因此它们比 mysql_result() 快得多。此外,请注意,为 field 参数指定数字偏移量比指定字段名或 tablename.fieldname 参数快得多。

参数

result

正在评估的结果 资源。此结果来自对 mysql_query() 的调用。

row

要检索的结果中的行号。行号从 0 开始。

field

要检索的字段的名称或偏移量。

它可以是字段的偏移量、字段的名称或字段的表点字段名称(tablename.fieldname)。如果列名已别名化('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() 的调用与处理结果集的其他函数调用混合使用。

参见

添加注释

用户贡献的注释 4 条注释

18
freedman at FreeFormIT dot com
9 年前
这是一个使用 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];
}
}
1
bob dot schuon at loungelizard dot com
5 年前
此函数考虑了原始函数能够接受“table_name.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];
}
1
mark at pnod dot co dot uk
1 年前
要替换行计数,例如

$querystring = "SELECT COUNT(*) FROM table WHERE column1 = 'EXAMPLE'";
$total_records = mysql_result(mysql_query($querystring,$connection),0);

使用 mysqli_fetch_row

$querystring = "SELECT COUNT(*) FROM table WHERE column1 = 'EXAMPLE'";
$rowcount = mysqli_fetch_row(mysqli_query($connection,$querystring));
$total_records = $rowcount[0];
-3
v dot teemu at gmail dot com
8 年前
我也在寻找 mysqli 替换,用于获取第一行,当查询已知只返回 1 个值时。这似乎很简单

echo(mysql_result($result, 0));

变成

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

或者

if ($row = $result->fetch_row()) {
echo($row[0]);
}
To Top