如何在 MySQLi 中复制 PHP mysql_result() 函数的功能
mysql_result() 函数,常用于遗留 PHP 代码,使开发人员能够快速从MySQL查询结果中访问特定数据。然而,MySQLi 本身并不支持此功能,MySQLi 是经过改进和推荐的用于与 MySQL 数据库交互的扩展。
获取行的替代方法
一种常见的检索方法MySQLi 查询结果中的数据是使用 fetch_assoc() 方法获取相应的行。下面是一个示例:
if ($r && $r->num_rows) { $row = $r->fetch_assoc(); $blarg = $row['blah']; }
此方法涉及多行,并且比使用 mysql_result() 等专用函数效率较低。
自定义等效函数
要复制 MySQLi 中 mysql_result() 的功能,您可以创建一个自定义函数,如下所示下面:
function mysqli_result($res,$row=0,$col=0){ $numrows = mysqli_num_rows($res); if ($numrows && $row <= ($numrows-1) && $row >=0){ mysqli_data_seek($res,$row); $resrow = (is_numeric($col)) ? mysqli_fetch_row($res) : mysqli_fetch_assoc($res); if (isset($resrow[$col])){ return $resrow[$col]; } } return false; }
该函数接受行索引和列索引作为参数,并返回相应的数据(如果存在)。它还处理与越界请求相关的潜在错误。
用法:
mysqli_result() 函数的使用方式与 mysql_result() 类似:
if ($r && $r->num_rows) $blarg = mysqli_result($r, 0, 'blah');
好处和限制
自定义 mysqli_result() 函数允许更简洁的代码,并减少从 MySQLi 查询结果检索数据所需的行数。但是,应该注意的是,该函数依赖于 PHP 的动态函数调用,与原始 mysql_result() 实现相比,可能会产生较小的性能损失。
以上是如何用 MySQLi 替换 PHP 的 `mysql_result()` 函数?的详细内容。更多信息请关注PHP中文网其他相关文章!