mysqli : 사용자, 학생,여러 삽입 내가 3 개 테이블이
사용자의 기본 키가 테이블 학생 (사용자 ID) 및 학생의 기본 키의 필드에 대한 외래 키 studentdetails을 A에 대한 외래 키 테이블 studentdetails (studentid)의 분야.
내가 SQL 스크립트 다음, 제출 한 3 표를 하나 개의 형태에서 데이터를 삽입해야합니다
$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 (??) 사용할 필요가 있지만 어떤 오류를주지 않는 및 두 테이블에 삽입 있지만 세 번째 하나는 않습니다. 사이에 SELECT 문을 사용하는 것이 좋을 것이라고 생각합니까? 여기 끝나면 모든 도움을 주시면 감사하겠습니다. 미리 감사드립니다.
여러 SQL 문을 실행하는 것은 좋지 않습니다. 명령문을 여러 삽입으로 분할하고 별도로 실행하십시오. – GordonM
더 많은 제어와 오류 처리를 할 수 있도록 별도의 SQL 문을 수행합니다. 그러나이 모든 데이터베이스 작업을 한 번에 수행해야한다고 생각한다면이 모든 작업을 수행하는 저장 프로 시저를 작성하십시오. –