douyu7210 2017-07-11 07:22
浏览 85
已采纳

PHP CodeIgniter异常处理

I am working on a system where every thing works fine as long as data is present in the database. But I wanted to test it against empty database. When I did that I got similar issues on almost every page.

An uncaught Exception was encounteredType: ErrorMessage: Call to a member function row() on boolean

I know what is issue here, but I want to know how I should handle the exception. I don't want the error message to disturb my system in case of empty database. One solution is turning off error_reporting but I am looking for a better solution.

  • 写回答

1条回答 默认 最新

  • dongqiangou5724 2017-07-11 08:03
    关注
    1. If you are sure there is one row for your query :

      $sql = "SELECT * FROM table WHERE id = '1'";
      $query = $this->db->query($sql);
      
      if($query->num_rows() == 1)
      {
          $row = $query->row();
      }
      

    2.If the result may contain multiple rows :

    $sql = "SELECT * FROM table";
    $query = $this->db->query($sql)->result();
    
    if(!empty($query))
    {
       foreach($query as $row)
        {
          //do something
        }
     }
    

    isset will throw warning if the variable does not exist. empty() will not throw that warning

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 宇视监控服务器无法登录
  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥15 DruidDataSource一直closing
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误
  • ¥50 power BI 从Mysql服务器导入数据,但连接进去后显示表无数据