我有這個註冊的東西,我想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