[英]Is there a way to insert some values(from one form) into two different tables in Codeigniter?
我正在嘗試將注冊到user_details 表的[first name]和[last name]列的用戶的姓名(名字和姓氏)詳細信息插入。 因此, snm_users 表各自列的電子郵件和密碼
我怎么可能在Codeigniter 中實現這一點?
這是我的輸入表單的片段:
<input type="text" name="fname">
<input type="email" name="email">
<input type="password" name="password">
這是處理數據庫的模型:
class User_model extends CI_Model {
public function register ($enc_password){
$data = array(
'fname' => $this->input->post('fname'),
'email' => $this->input->post('email'),
'password' => $enc_password
);
//insert user to database
return $this->db->insert('snm_users', $data);
}
}
我相信您是 CodeIgniter 的新手。 最好做一些研究,以了解 MVC(模型視圖控制器)的真正工作原理。 我會給你一個基本的想法: VIEW
是你使用 HTML 的地方,比如顯示表單和任何輸出內容等。 MODEL
是你編寫數據庫交互代碼的地方。 像 INSERTIONS、UPDATIONS、SELECT 查詢等。 CONTROLLER
是您執行業務邏輯、驗證等的地方。
在您上面發布的代碼片段中,您使用的是直接在 MODEL 中從表單提交的數據。 這不是最好的方法。 接受它(從$this->input->post()
在您的 CONTROLLER 中,然后進行驗證並將其傳遞給 MODEL。
回到你的問題,你想在user_details_table
插入first_name
和last_name
,在另一個表( snm_users_table
)中插入email
和password
為此,首先在主表中進行插入。 我相信它的snm_users_table
。 我假設您有一個名為user_id
或用於標識每條記錄的東西。 所以,一旦你插入這個主 User 表,你可以使用這個函數獲取last_insert_id
(這個新插入的行的 ID): $this->db->insert_id()
現在,您可以使用上述函數返回的user_id
將其他詳細信息插入到第二個表中,即user_details_table
。
您可以在這些插入過程中使用 TRANSACTIONS,這樣您就不會在一個表中插入記錄而在另一表中沒有記錄,以防萬一出現任何錯誤! 因為 TRANSACTIONS 會幫助您在出現任何問題時回滾更改!
在此處閱讀更多信息: https : //www.codeigniter.com/user_guide/database/transactions.html
希望這會給你一個想法。 :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.