我正在尝试将注册的用户的名称(名字和姓氏)详细信息插入 [名字] 和 [姓氏] < user_details表的/ strong>列。因此,电子邮件和密码到 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);
}
}
答案 0 :(得分:0)
我相信您是CodeIgniter的新手。最好做一些研究以获得有关MVC(模型视图控制器)实际工作方式的基本概念。我将给您一个基本的想法:VIEW
是您使用HTML的地方,例如显示表单和任何输出内容,等等。MODEL
是您编写数据库交互的代码的地方。像INSERTIONS,UPDATIONS,SELECT查询等。CONTROLLER
是您进行业务逻辑,验证等的地方。
在上面发布的代码段中,您正在使用直接从MODEL内部的表单提交的数据。这不是最好的方法。 (从CONTROLLER内部的$this->input->post()
接受它,然后进行验证并将其传递给MODEL。
回到您的问题,您想将first_name
和last_name
和user_details_table
的{{1}}和email
插入另一个表({{1 }})
为此,首先在主表中进行插入。我相信它的password
。我假设您有一个名为snm_users_table
的主键或用于标识每个记录的名称。因此,一旦插入到该主User表中,就可以使用以下函数获取snm_users_table
(此新插入的行的ID):user_id
现在,您可以使用上述函数返回的last_insert_id
在第二张表$this->db->insert_id()
上插入其他详细信息。
在这些插入过程中可以使用TRANSACTIONS,这样就不会在出现任何错误的情况下最终在一个表中插入记录,而在另一表中没有记录。因为TRANSACTIONS可以帮助您在发生任何问题时回滚更改!
在此处了解更多信息: https://www.codeigniter.com/user_guide/database/transactions.html
希望这会给您一个想法。 :)