2017-06-16 63 views
1

不工作我通過笨更新方法更新數據庫中的字段有問題更新方法笨

我的控制器:

 $database = array(
     'last_location' => $url[5]."-".$url[6], 
     'last_date_location' => $url[3]." ".$url[4], 
    ); 

     $user = $this->API_model->get_user($url[0]); 

     print_r($user); 

     if ($this->db->update('user', $database , $user['id']) === true) { 
     print_r($database); 
     echo "MEI_TRUE"; 
     }else { 
     echo "MEI_FALSE"; 
     } 

瀏覽器返回MEI_TRUE意味着數據庫更新成功,但是當我檢查數據庫在phpmyadmin沒有什麼變化:(

有什麼問題?

回答

1

應該現在的工作。

$database = array(
     'last_location' => $url[5]."-".$url[6], 
     'last_date_location' => $url[3]." ".$url[4], 
    ); 

     $user = $this->API_model->get_user($url[0]); 

     print_r($user); 
     $query = $this->db->where('id',$user['id']) 
         ->update('user', $database); 
     if ($query) { 
     print_r($database); 
     echo "MEI_TRUE"; 
     }else { 
     echo "MEI_FALSE"; 
     } 
+0

很高興幫助你。美好的一天 – molagbal

1

你可以嘗試類似下面,

$database = array(
     'last_location' => $url[5]."-".$url[6], 
     'last_date_location' => $url[3]." ".$url[4], 
    ); 
$this->db->where('id', $user['id']); 
$this->db->update('user', $database); 

希望這將幫助你

1

事情是 - 你想要更新什麼? 更新查詢的第三個參數可以啓用where子句爲字符串

雖然你的例子是相當危險的,請嘗試以下

if ($this->db->update('user', $database , "id = ".$user['id']) === true) 
{ 
    print_r($database); 
    echo "MEI_TRUE"; 
} 
else 
{ 
    echo "MEI_FALSE"; 
} 

的更好的方式是(如Dhanesh已經提到):

$blnUpdateSuccess = $this->db->where("id", $user['id'])->update("user",$database); 

if ($blnUpdateSuccess) 
{ 
    print_r($database); 
    echo "MEI_TRUE"; 
} 
else 
{ 
    echo "MEI_FALSE"; 
} 

欲瞭解更多信息,請閱讀文檔here