我有这个注册的东西,我想3表,尽快在用户点击添加用户使用LastInsertId多次,PHP PDO
表充满了数据:
users
roles
status
user_role
user_status
username
password
user_rol:系统必须如下 用户表中插入数据ES
user_id
default value
user_status
user_id
default value
我用PDO开始交易的东西,承诺东西,使这项工作... 这个伟大的工作,当我用它只是两个表,但是当我决定使用另一个表格并执行相同的代码模式,但它根本无法工作。
这里是代码:
$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张桌子。谢谢!
我想你应该提交各'INSERT'因为没有在数据库中事务实体所做的更改。 – 2012-07-31 16:57:50
通过提交每个“insert”,你的意思是什么? – 2012-07-31 17:07:03