嗨我想更新表中的列。我在列中選擇了一個範圍,並使用foreach循環遍歷它們。但是,我注意到它不僅更新了我選擇的範圍,還更新了選擇範圍。一些忠告讚賞!爲什麼PHP更新未選擇的數據?
代碼:
$this->db->where('weekday', 5);
$this->db->where('source', 'site');
$record = $this->db->get('user', 200);
$print_r($record->num_rows());
foreach ($record->result() as $row) :
$data = array(
'weekday' => 1,
);
$this->db->where('user_id', $row->user_id); //added based on an answer provided below
$this->db->update('user', $data);
endforeach;
這的確看起來簡單,我也從我選擇200 rows.But代碼實際更新表中的所有行3000我沒有在$選擇的print_r得到記錄變量。這怎麼會發生?
感謝,
更新:很多人嘗試了,我們依然未能追蹤問題。你能否想到另一種方式來完成工作而不使用foreach?
感謝,
我正在使用codeigniter,這是在提取數據之前定義標準的方法。加上我用print_r來確認我只拉了200行 – user3192948
更新:我在endforeach後試過運行:$ this-> db-> last_query(),結果表示最後一個查詢是:「UPDATE'user' SET'weekday' = 1" 。 – user3192948