0
我的web應用程序中的用戶登錄有問題。我想要做的是更新特定用戶的last_online_at
值,並在當前日期和時間之前將其登錄到主頁面。但是,它並沒有像我期望的那樣更新。CodeIgniter無法更新數據庫
這裏是我的代碼:
...
if($result != FALSE){
$this->db->select('name');
$this->db->from('user_type');
$this->db->where("id ='" . $result[0]->user_type_id . "'");
$query = $this->db->get();
$session_data = array('first_name' => $result[0]->first_name,
'last_name' => $result[0]->last_name,
'username' => $result[0]->username,
'email' => $result[0]->email,
'id' => $result[0]->user_id,
'created_at' => date_parse($result[0]->created_at),
'recent_searches' => array(),
'food_tray' => array('Sample', 'Test', 'Qwerty'),
'logged_in' => TRUE,
'user_type' => $query->row()->name,
'user_type_id' => $result[0]->user_type_id,
'user_privileges' => array());
$this->session->set_userdata($session_data);
// LINE OF CODE RESPONSIBLE FOR UPDATING `last_online_at` VALUE //
$data = array('last_online_at' => date('Y-m-d H:i:s'));
$this->db->update('user', $data, 'id =' . $session_data['id']);
/////////////////////////////////////////////////////////////////
if($session_data['user_type'] == 'Customer'){
// REDIRECT TO USER PAGE
redirect(base_url() . "index.php/main");
}else if($session_data['user_type'] == 'Aggregator' ||
$session_data['user_type'] == 'Restaurant Owner' ||
$session_data['user_type'] == 'System Admin'){
// REDIRECT TO ADMIN DASHBOARD
redirect(base_url() . "index.php/admin?page_view=admin_dash");
}
}
你可以從給定的代碼片段看,我用變量$session_data['id']
替換爲參數值來更新查詢的WHERE子句,這是在一個不起作用。但是當我將其替換爲靜態值時,例如1,它將平穩運行並根據給定的靜態值更新記錄
我是否在做這個錯誤?任何幫助,將不勝感激
那麼什麼是變量$ a的var_dump session_data是什麼樣子的?使用var_dump($ session_data);然後你可以看到id是否被正確設置。 – TimBrownlaw
謝謝,這對我有用!我剛纔觀察到,當我var_dumped session_data時,事實證明id的值爲'NULL',並且已經用正確的數組索引 – Chamber
取代了它非常好:)觀察變量以驗證它們正在做什麼總是件好事你認爲他們應該做... – TimBrownlaw