为了账号安全,请及时绑定邮箱和手机立即绑定

MySQLi等价于MySQL_Result()?

MySQLi等价于MySQL_Result()?

PHP
元芳怎么了 2019-07-04 17:48:44
MySQLi等价于MySQL_Result()?我正在将一些旧的PHP代码从MySQL移植到MySQLi,我遇到了一个小麻烦。是否没有与旧的相提并论的?mysql_result()功能?我知道呀mysql_result()当您处理超过1行时,它比其他函数要慢,但是很多时候我只有一个结果和一个字段。使用它,我可以将4行压缩为1。旧代码:if ($r && mysql_num_rows($r))       $blarg = mysql_result($r, 0, 'blah');所需代码:if ($r && $r->num_rows)       $blarg = $r->result(0, 'blah');但是没有这样的东西。:(我遗漏了什么吗?还是我要把它吸进去,然后把所有的东西都编出来:if ($r && $r->num_rows)  {       $row = $r->fetch_assoc();       $blarg = $row['blah'];  }
查看完整描述

3 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

PHP 5.4现在支持函数数组去引用,这意味着你可以这样做:

if ($r && $r->num_rows)  {  
    $row = $r->fetch_assoc()['blah'];  }


查看完整回答
反对 回复 2019-07-04
?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

回答我想在回答完同样的问题后,我可以改进答案。下面的函数完全复制MySQL_Result()函数,并在请求超出范围时返回false(空结果,没有该数字的行,也没有该数字的列)。它还有一个额外的好处,即如果不指定行,则假定为0,0(要传递的值减少一个)。对该函数进行了更新,以便对字段进行数值偏移。或者字段名。

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;}


查看完整回答
反对 回复 2019-07-04
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

function db_result($result,$row,$field) { 
  if($result->num_rows==0) return 'unknown'; 
  $result->data_seek($row);
  $ceva=$result->fetch_assoc(); 
  $rasp=$ceva[$field]; 
  return $rasp; }


查看完整回答
反对 回复 2019-07-04
  • 3 回答
  • 0 关注
  • 521 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信