1

私がやっていることは、Codeigniter アクティブ レコードを使用して行を更新することです。DBMS は PostgreSQL です。以下のような画面にならずにエラーをキャッチしたいです。

ここに画像の説明を入力

この手順に従う理由を説明すると、更新クエリ関数がエラーなしで正しく実行された場合、最初の関数の戻り値 (true または false) に応じて 2 番目の関数が実行されます。

うまくいかない以下の方法を試しました。

方法 1

    $this->db->where('id', $folio_id);
    $this->db->update('folio', $data);
    if(!empty($this->db->_error_number()))
    {
    echo "ERROR";die;
    }

方法 2

    try
    {
        $this->db->where('id', $folio_id);
        $this->db->update('folio', $data);
    }
    catch (Exception $e)
    {
       echo "ERROR";die;
    }  

私がやりたいのは、クエリがエラーなしで実行された場合は true を返し、エラーがある場合は false を返すことだけです。

データベースエラーを停止させずにキャッチするにはどうすればよいですか?

4

1 に答える 1

1

よくわかんないけど、何でダイスをキャッチから外さないの?

$success = true;
try
    {
        $this->db->where('id', $folio_id);
        $this->db->update('folio', $data);
    }
    catch (Exception $e)
    {
       echo "ERROR ".$e.getMessage();
       $success = false;
    } 

if ($success) {
   ...
于 2013-10-16T09:31:46.613 に答える