2017-07-11 8 views
1

データベースにデータが存在する限り、すべてのものが正常に動作するシステムで作業しています。しかし、私はそれを空のデータベースに対してテストしたかったのです。私がそれをしたとき、私はほぼすべてのページで同様の問題を抱えています。PHP CodeIgniter例外処理

キャッチされない例外がencounteredTypeた:にErrorMessage:ブール

上)( メンバ関数行に呼び出して、私は問題がここにあるものを知っているが、私は例外を処理する方法を知りたいです。私は空のデータベースの場合にエラーメッセージが私のシステムを妨害しないようにしたい。 1つの解決策はerror_reportingをオフにしていますが、私はより良い解決策を探しています。

+0

結果変数にissetまたは!emptyを使用してください。データを取得できない場合はrow()を使用しないでください。そうでなければ、あなたがしたいことを何でもしてください。 –

答えて

0
  1. あなたのクエリに対して1つの行があることを確認している場合は、次の結果2.Ifは

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

は、複数の行が含まれる場合があります。

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

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

isset警告がスローされます変数が存在しない場合empty()はその警告をスローしません