CodeIgniter Forums
DB->display_error() - Printable Version

+- CodeIgniter Forums (https://forum.codeigniter.com)
+-- Forum: Using CodeIgniter (https://forum.codeigniter.com/forumdisplay.php?fid=5)
+--- Forum: General Help (https://forum.codeigniter.com/forumdisplay.php?fid=24)
+--- Thread: DB->display_error() (/showthread.php?tid=61389)



DB->display_error() - seasenx6 - 04-12-2015

from : http://www.codeigniter.com/userguide3/database/db_driver_reference.html?highlight=db%20error#CI_DB_driver::display_error

I try to identify Update Database success or not success

In model i try to return boolean

but Database error : A Database Error Occurred

PHP Code:
if ($this->Temples_model->update_temple_view($id$data_to_temple)) {
 
                   $detail_to_temple = array(
 
                       'TemDetail' => $this->input->post('detail_tem'),
 
                       'TemID' => $id,
 
                   );

 
                   if ($this->Temples_model->update_temple_detail($id$detail_to_temple)) {

 
                       $this->session->set_flashdata('flash_message''updated');

 
                       redirect('backend/temple/view/'.$id.''$data);
 
                   }
 
                   
                
} else {
 
                   $this->session->set_flashdata('flash_message''not_updated');

 
                   redirect('backend/temple/edit/'.$id.''$data);
 
               



PHP Code:
function update_temple_view($id$data_to_temple)
    {
        
$this->db->where('TemID'$id);
        
$this->db->update('temple_view'$data_to_temple);
        
$report['error'] = $this->db->display_error();
        
//$report['message'] = $this->db->_error_message();
        
if($report !== 0){
            return 
true;
        }else{
            return 
false;
        }
        return 
true;
    }

    function 
update_temple_detail($id$data_to_detail)
    {
        
$this->db->where('TemID'$id);
        
$this->db->update('temple_detail'$data_to_detail);
        
$report['error'] = $this->db->display_error();
        
//$report['message'] = $this->db->_error_message();
        
if($report !== 0){
            return 
true;
        }else{
            return 
false;
        }
        return 
true;
    } 



RE: DB->display_error() - CroNiX - 04-12-2015

if($report !== 0){

You store the error as $report['error'], but only check if $report isn't 0, but it's an array, which won't be 0.

But most DB operations return TRUE or FALSE depending on success. I haven't used CI3, but your model should probably be something like:
PHP Code:
function update_temple_view($id$data_to_temple) {
  
$this->db->where('TemID'$id);
  
$updated $this->db->update('temple_view'$data_to_temple); //db::update() will return true/false

  
return $updated;

Then in your controller:
PHP Code:
if ($this->Temples_model->update_temple_view($id$data_to_temple)) {
  
//do success event
}
else
{
  
//grab the error and display it
  
$this->db->display_error();




RE: DB->display_error() - seasenx6 - 04-12-2015

OK, Thank you very much. I'm lean a new idea Thannks