2015-10-18 71 views
1

我爲easyappointments.org庫使用CodeIgniter框架。我試圖通過行的ID更新字段data。其實這是我的更新代碼:如何更新CodeIgniter更新中的特定字段?

return $this->db 
       ->update('ea_appointments', $appointment) 
       ->where('ea_appointments.id', $appointment_id); 

的問題是,該update方法需要兩個參數(表進行更新,以分貝的字段名稱列關聯數組)。在我上面的函數中,我只通過了$appointment_id,所以變量$appointment是空的並且不包含任何關聯數組。我想知道如何只更新字段data1。並保持其他領域在相同的價值條件。 這是表的結構:

id|book|start|end|notes|hash|unavailable|provider|data 

邏輯例如:

以前的狀態行:

id => 0 
book => example 
start => 18/10/2015 
end => 19/10/2015 
notes => empty 
hash => akdjasldja 
unavailable => false 
provider => 5 
data => 0 

我在功能$appointment_id通過用0值。我等待這個新的結果:

id => 0 
book => example 
start => 18/10/2015 
end => 19/10/2015 
notes => empty 
hash => akdjasldja 
unavailable => false 
provider => 5 
data => 1 

所以,主要的問題是先檢索特定行的所有字段值和以後更新?或者類似的東西。有人能幫助我嗎?

回答

4

在我上面的函數中,我只傳遞$ appointment_id,所以變量 $ appointment是空的並且不包含任何關聯數組。

如果你只是想列data更新爲1爲appointment_id 0然後在陣列傳遞與data密鑰和1的價值。

$appointment_id = 0; 
$appointment = array('data' => 1);  
$this->db->where('id', $appointment_id); 
$this->db->update('ea_appointments', $appointment); 
+0

哦,你是對的!感謝這非常有用。只是另一個問題,如果我想選擇字段「數據」0的ea_appointments表的所有行? – Dillinger

+0

@Dillinger https://ellislab.com/codeigniter/user-guide/database/active_record.html#select – FuzzyTree

+0

@Dillinger將你的'where'改爲' - > where('data',0)' – FuzzyTree