【问题标题】:PHP CodeIgniter exception handlingPHP CodeIgniter 异常处理
【发布时间】:2017-07-11 07:22:22
【问题描述】:

我正在开发一个系统,只要数据库中存在数据,一切都可以正常工作。但我想针对空数据库对其进行测试。当我这样做时,我几乎在每一页上都遇到了类似的问题。

遇到未捕获的异常类型:错误消息:调用 成员函数 row() on boolean

我知道这里有什么问题,但我想知道我应该如何处理异常。如果数据库为空,我不希望错误消息干扰我的系统。一种解决方案是关闭error_reporting,但我正在寻找更好的解决方案。

【问题讨论】:

  • 在结果变量上使用 isset 或 !empty。如果没有得到任何数据,请不要使用 row()。否则做任何你想做的事。

标签: php codeigniter exception-handling


【解决方案1】:
  1. 如果您确定您的查询只有一行:

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

2.如果结果可能包含多行:

$sql = "SELECT * FROM table";
$query = $this->db->query($sql)->result();

if(!empty($query))
{
   foreach($query as $row)
    {
      //do something
    }
 }

isset 如果变量不存在会抛出警告。 empty() 不会抛出该警告

【讨论】:

    猜你喜欢
    • 2013-01-12
    • 1970-01-01
    • 1970-01-01
    • 2013-02-25
    • 2016-02-29
    • 2016-03-07
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多