>我试图在具有不同数据库表的多用户网站上制作注册表单。
例如,当用户 1 注册时,数据将输入到表 "user1" 中, 当用户 2 注册时,在表 "user2" 中输入。
我只能在同一个表中输入用户 1 和用户 2。 这是我使用role_id的代码
$data = [
'name' => htmlspecialchars($this->input->post('nama', true)),
'username' => htmlspecialchars($this->input->post('username', true)),
'photo' => 'default.jpg',
'password' => password_hash($this->input->post('password1'), PASSWORD_DEFAULT),
'role_id' => 2,
'is_active' => 1,
'is_date' => time()
];
您可以通过对role_id
应用条件来执行此操作,但这仅在只有多个用户时才可行。如果有许多用户,并且您希望为每个用户创建一个单独的表,请尝试Database Forge Class
(不良做法(
我已经为您的问题写了一个可能的解决方案,必要时会提到评论。看看它是否对你有帮助。
控制器
$data = [
'name' => htmlspecialchars($this->input->post('nama', true)),
'username' => htmlspecialchars($this->input->post('username', true)),
'photo' => 'default.jpg',
'password' => password_hash($this->input->post('password1'), PASSWORD_DEFAULT),
'role_id' => 2,
'is_active' => 1,
'is_date' => time()
];
$this->xyz_model->xyz_function($data); // load xyz_model and call xyz_function with $data parameters
Xyz_model
function xyz_function($data){
$table = 'user1'; // default value
if($data['role_id'] != 1){ // other value is 2 -- assuming only 2 users are there(if not user if else or switch)
$table = 'user2';
}
$this->db->insert($table, $data);
return $this->db->insert_id();
}