这是一个使用 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];
}
}
(PHP 4, PHP 5)
mysql_result — 获取结果数据
此扩展在 PHP 5.5.0 中已弃用,并在 PHP 7.0.0 中移除。应改用 MySQLi 或 PDO_MySQL 扩展。另请参阅 MySQL:选择 API 指南。此函数的替代方案包括
从 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() 的调用与处理结果集的其他函数调用混合使用。
这是一个使用 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];
}
}
此函数考虑了原始函数能够接受“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];
}
要替换行计数,例如
$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];
我也在寻找 mysqli 替换,用于获取第一行,当查询已知只返回 1 个值时。这似乎很简单
echo(mysql_result($result, 0));
变成
echo($result->fetch_row()[0]);
或者
if ($row = $result->fetch_row()) {
echo($row[0]);
}