我有这个注册的东西,我想在用户点击添加用户后立即用3个表填充数据
表格是:users
roles
status
user_role
user_status
系统必须按如下方式插入数据 用户表:
username
password
user_roles
user_id
default value
user_status
user_id
default value
我使用了pdo begin transaction stuff并提交了一些东西来完成这项工作...... 当我在两个表上使用它时,这很有效,但是当我决定使用另一个表并执行相同的代码模式时,它根本不起作用。
以下是代码:
$this->db->beginTransaction();
$sth = $this->db->prepare("INSERT INTO users (username, password)
VALUES (:user,:pass)");
$sth->execute(array(
':user'=> $data['user'],
':pass'=> Hash::create('sha256', $data['pass'], HASH)
));
$sth = $this->db->prepare("INSERT INTO user_role (user_id, role_id) VALUES (:user, :role)");
$sth->execute(array(
':user' => $this->db->lastInsertId(),
':role' => 3
));
$sth = $this->db->prepare("INSERT INTO user_status (user_id, status_id) VALUES (:user, :status)");
$sth->execute(array(
':user' => $this->db->lastInsertId(),
':status' => 1
));
$this->db->commit();
你认为这个问题是什么,我也怀疑这是一种语法错误,但我找不到它,所以我最后的办法就是问,因为我不确定这是否适用于3表。谢谢!
答案 0 :(得分:0)
:
$insertID = $this->db->lastInsertId();
然后在以下INSERTS
':user' => $insertID,