データベースに2つのテーブルがあります。
Employee_info
(すべての従業員情報を保存します)およびJob_Info
(すべての役職、職務記述書を保存します)。
コードは問題なくデータを挿入しますが、更新するとこのエラーがブラウザに出力されます。
子行を追加または更新できません:外部キー制約が失敗します(Employee_database.job_info、CONSTRAINT job_info_ibfk_4 FOREIGN KEY(Employee_Id)REFERENCES Employee_info(Employee_Id)ON UPDATE CASCADE)
Employee_Id
子テーブルの値を更新することができません。または何が問題になる可能性がありますか?
これがコードです
$query = "SELECT * FROM `Employee_info` WHERE `Name_Of_Employee` = '$Name'";
$sqlsearch = mysql_query($query);
$resultcount = mysql_numrows($sqlsearch);
if ($resultcount > 0)
{
$row=mysql_fetch_assoc ($sqlsearch);
$Employee_Id= $row['Employee_Id'];
mysql_query("UPDATE `employee_info` SET `Name_Of_Employee` = '$Name',
`Physical_Address` = '$P_Address',
`Phone_Number` = '$Phone',
`Email_Address` = '$E_Address'
WHERE `Name_Of_Employee` = '$Name'"
)
or die(mysql_error());
}
else {
$sql="INSERT INTO employee_info
(
Name_Of_Employee,
Physical_Address,
Phone_Number,
Email_Address
)
VALUES (
'$Name',
'$P_Address',
'$Phone',
'$E_Address'
)";
if(!mysql_query($sql))
{
die('cannot store in employee_info'.mysql_error());
}
}
$Employee_Id=mysql_insert_id();
$qry = "SELECT * FROM `Job_info` WHERE `Job_Title` = '$Job_Title'";
$sqlsearch = mysql_query($query);
$resultcount = mysql_numrows($sqlsearch);
if ($resultcount > 0) {
"UPDATE `Job_info` SET `Employee_Id` = '$Employee_Id' ,
`Job_Title` = '$Job_Title',
`Job_Description` = '$Job_Description'
WHERE `Employee_Id` = '$Employee_Id'")
or die(mysql_error());
}
else
{
$sql="INSERT INTO ad_info (
Employee_Id,
Job_Title,
Job_Description
)
VALUES (
'$Employee_Id',
'$Job_Title',
'$Job_Description'
)";
if(!mysql_query($sql))
{
die('cannot store in job info'.mysql_error());}
}
これがデータベースの設計です
+------------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------------+-------------+------+-----+---------+----------------+
| Employee_Id | int(11) | NO | PRI | NULL | auto_increment |
| Name_Of_Employee | varchar(20) | NO | | | |
| Physical_Address | varchar(25) | NO | | | |
| Phone_Number | int(14) | NO | | | |
| Email_address | varchar(25) | NO | | | | |
+------------------+-------------+------+-----+---------+----------------+
+------------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------------+-------------+------+-----+---------+----------------+
| jOB_Id | int(11) | NO | PRI | NULL | auto_increment |
| Employee_Id | int(11) | NO | | | |
| Job_Title | varchar(25) | NO | | | |
| Job_Description | text(100) | NO | | | |
+------------------+-------------+------+-----+---------+----------------+