当我用 PHP CodeIgniter 更新我的数据时,它给出了一个错误。但是数据正在保存

When I update my data with PHP CodeIgniter, It gives an error. But data is saving

我正在使用 'CodeIgniter-3.1.3'。当我更新我的数据时,它给出了如下错误。但是我的数据保存在数据库中。我找不到问题所在。是不是我的模型函数有什么版本问题..?

Error : Fatal error: Call to undefined method CI_DB_mysqli_driver::_error_number()

在控制器中

public function saveUpdateData(){
    $updateDataArray = array(
        "fname" => $_POST['fname'],
        "lname" => $_POST['lname'],
        "username" => $_POST['user'],
        "userlevel" => $_POST['userlevel'],
        "contact" => $_POST['contact_no']
    );
    $whereArr=array("user_id"=>$this->input->post("user_id"));
    $rst = $this->MyModel->updateData("admin", $updateDataArray, $whereArr);

    if ($rst) {
      echo "updated";
    }    
    else{
      echo "error";
    }
}

模型中

function updateData($tablename, $data_arr, $where_arr) {
    try {
        $this->db->update($tablename, $data_arr, $where_arr);
        $report = array();
        $report['error'] = $this->db->_error_number();
        $report['message'] = $this->db->_error_message();
        return $report;
    } catch (Exception $err) {
        return $err->getMessage();
    }
}

enter image description here

您尝试访问的功能已被弃用。

替换:

  • $this->db->_error_number()
  • $this->db->_error_message()

与:

  • $this->db->error()

新函数将return一个包含错误编号和消息的数组。

请参阅此 CodeIgniter 页面: https://www.codeigniter.com/userguide3/changelog.html?highlight=_error_number

这样做

模型中

function updateData($tablename, $data_arr, $where_arr) 
{
    if (!$this->db->update($tablename, $data_arr, $where_arr)) {
        $result = $this->db->error(); 
    } 
    else {
        return TRUE;
    }
}

在控制器中

$rst = $this->MyModel->updateData("admin", $updateDataArray, $whereArr);

if ($rst == TRUE) {
  echo "updated";
}    
else{
  print_r($rst);
}

阅读Error Handling Codeigniter

在 CodeIgniter 3+ 中,您可以使用以下命令获取错误编号和消息: $error = $this->db->error();

参考:Handling Query Errors in CodeIgniter