ユーザーコントローラーの関数内にこのコードがあります。私は、Codeigniter を使用しています。
$name_user = $this->input->post('contact-company');
$company_name = $this->input->post('name-company');
$company_orgnr = $this->input->post('orgnr-company');
$phone_company = $this->input->post('phone-company');
$email_company = $this->input->post('email-company');
//Insert a a new user
$user_info = array(
'username' => $email_company,
'name_user' => $name_user
);
$company_info = array(
'name' => $company_name,
'orgnr' => $company_orgnr,
'phone' => $phone_company,
'email' => $email_company
);
//Insert a new user in db
$query_insertuser = "START TRANSACTION";
//Get sql for inserting a new user
$um = new Usermodel();
$query_insertuser .= $um->getSQLInsert($user_info);
//Get sql for inserting a new company
$cm = new Companymodel();
$query_insertuser .= $cm->getSQLInsert($company_info);
//Get sql for inserting relation between user
//and company (How do I get ID of user and ID of company to use?)
$upm = new Userprofilemodel();
$query_insertuser .= $upm->getSQLInsert();
$query_insertuser .= "COMMIT";
//Do the atual insert
$um->insert($query_insertuser);
フォームからの登録を処理するために使用されます。(検証はフォーム検証ライブラリを介して行われます)-
- ユーザー名、name_user を持つユーザーは、users-table に格納されます
- 会社は会社テーブルに格納されます
- 企業とユーザーの関係は userprofile-table に保存されます
コードは一目瞭然だと思いますが、関係を userprofile-model に挿入する方法が明確ではありません。ユーザーの最後に挿入されたIDと会社の最後に挿入されたIDが必要ですが、呼び出す前に実際にユーザーや会社を挿入していないため、コードにはそれがありません$upm->getSQLInsert();
それとも私はこれを間違ってやっていますか?ヒントを教えてください...