簡體   English   中英

有沒有辦法將一些值(從一種形式)插入到 Codeigniter 中的兩個不同表中?

[英]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_namelast_name ,在另一個表( snm_users_table )中插入emailpassword

為此,首先在主表中進行插入。 我相信它的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM