【问题标题】:How to check for an update is done or not [duplicate]如何检查更新是否完成[重复]
【发布时间】:2012-03-06 11:22:20
【问题描述】:

我正在更新一个表,我如何检查更新是否成功。我将结果存储在$Result 中,当我打印它时,它会给我以下输出。

CI_DB_mysqli_result Object
(
    [conn_id] => mysqli Object (
            [affected_rows] => 0
            [client_info] => mysqlnd 5.0.8-dev - 20102224 - $Revision: 310735 $
            [client_version] => 50008
            [connect_errno] => 0
            [connect_error] => 
            [errno] => 0
            [error] => 
            [field_count] => 0
            [host_info] => localhost via TCP/IP
            [info] => 
            [insert_id] => 0
            [server_info] => 5.5.16
            [server_version] => 50516
            [sqlstate] => 00000
            [protocol_version] => 10
            [thread_id] => 765
            [warning_count] => 0
    )
    [result_id] => 1
    [result_array] => Array ()
    [result_object] => Array ()
    [custom_result_object] => Array ()
    [current_row] => 0
    [num_rows] => 
    [row_data] => 
)

【问题讨论】:

    标签: php mysql codeigniter


    【解决方案1】:
    you can check your affected rows in php like 
    if($this->db->affected_rows() > 0){ //affected rows}
    
    or in codeigniter 
    
    if($this->db->affected_rows() > 0)
    {
        return TRUE;
    }else{
        return FALSE;
    }
    

    【讨论】:

      【解决方案2】:

      你可以检查error is empty,比如

      if(!$this->db->_error_number()) { // update successful }

      【讨论】:

        【解决方案3】:

        使用$this->db->affected_rows() 来验证是否发生了实际更新,因为如果更新实际上没有成功,即执行查询但记录中没有更改,$this->db->_error_number() 不会引发任何错误。如果使用$this->db->_error_number(),执行更新查询而不更改值将不会返回错误,但会注意到$this->db->affected_rows(),这就是我们想知道值是否更新。

        希望这是有道理的。

        【讨论】:

          猜你喜欢
          • 2015-10-18
          • 1970-01-01
          • 2020-07-01
          • 2022-08-04
          • 2021-10-01
          • 1970-01-01
          • 1970-01-01
          • 2017-11-13
          • 1970-01-01
          相关资源
          最近更新 更多