user、student、studentdetails の 3 つのテーブルがあります。
ユーザーの主キーはテーブル Student (userid) のフィールドの外部キーであり、学生の主キーはテーブル studentdetails (studentid) のフィールドの外部キーです。
1 回の送信で 1 つのフォームから 3 つのテーブルすべてにデータを挿入する必要があります。SQL スクリプトは次のとおりです。
$sql = "
INSERT INTO `tbluser`(`username`, `password`, `roleid`, `datecreated`)
VALUES ('$email','$password', '$role', CURRENT_TIMESTAMP);
SELECT @uid := MAX(`userid`) FROM `tbluser`;
INSERT INTO `tblstudent` (`userid`, `scholarnumber`, `firstname`, `middlename`,
`lastname`, `datecreated`)
VALUES ('@uid', '$scholar_no', '$first_name', '$middle_name', '$last_name',
CURRENT_TIMESTAMP);
SELECT @stuID := MAX(`studentid`) FROM `tblstudent`;
INSERT INTO `tblstudentdetails` (`studentid`,`dob`, `studenttype`, `gender`,
`religion`, `category`, `currentsuburbid`, `currentcityid`, `currentaddress1`,
`currentzipcode`, `currentstateid`, `currentcountryid`,`mobile`,`phone1`,`email1`,
`passportnum`, `permasuburbid`, `permaaddress1`, `dateofjoining`,
`admissionreferenceof`, `datecreated`, `dateupdated`)
VALUES ('@stuid', '$dob' ,'$studenttype' ,'$gender','$religion','$category',
'$currentsuburbid', ' $currentcityid', '$currentaddress1', '$currentzipcode',
'$currentstateid', '$currentcountryid', '$mobile',
'$phone1','$email1','$passportnum','$permanentsuburbid', '$permanentaddress1',
'$doj', ' $admissionreference',current_timestamp, current_timestamp);
";
上記のスクリプトは mysql (phpmyadmin) では機能しますが、php では機能しません。私は理解しています、私は multi_query (??) を使用する必要がありますが、エラーは発生せず、2 つのテーブルに挿入されますが、3 番目のテーブルには挿入されません。間の SELECT ステートメントと関係があるのではないかと思いますか? ここで知恵を絞って、助けていただければ幸いです。事前に感謝します。