私はこれについていくつかの質問と回答を見てきましたが、私の問題に非常に似ているものはないので、今私は尋ねています。
これが状況です
users
、、、というテーブルがありroles
ますuser_role
テーブル: users
フィールド:user_id
、、username
_password
表:役割
フィールド:role_id
、role_name
テーブル:user_role
フィールド:user_id
、role_id
user_role.user_id
の外部キーはuser.user_id
user_role.role_id
の外部キーはrole.role_id
私の問題は、ユーザーを作成するときに、その役割をデフォルト値または<select>
要素で選択した選択値に設定したいということです。
私は次のようないくつかのことを試しました:
INSERT INTO users as t1 (t1.username, t1.password, t2.role)
JOIN user_role as t2 ON t1.user_id = t2.user_id
VALUES (:username, :password, :role)
私はそれを非常に間違っていますか?
以下の回答のために編集してください
私はまだ何かが間違っていると思います、それは私に空白の画面を与えます
$this->db->beginTransaction();
$string = "INSERT INTO users (username, password)
VALUES (:user,:pass,:first,:middle,:last,:course)";
$sth = $this->db->prepare($string);
$sth->execute(array(
':user'=> $data['user'],
':pass'=> $data['pass']
));
$sth = $this->db->prepare("INSERT INTO user_roles (user_id, role_id)
VALUES (' . $this->db->lastInsertId(user_id) . ', :role)");
$sth->execute(array(
':role' => 3
));
$this->db->commit();