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

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

报告相同问题?

悬赏问题

  • ¥50 随机森林与房贷信用风险模型
  • ¥50 buildozer打包kivy app失败
  • ¥30 在vs2022里运行python代码
  • ¥15 不同尺寸货物如何寻找合适的包装箱型谱
  • ¥15 求解 yolo算法问题
  • ¥15 虚拟机打包apk出现错误
  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备