データベースに2つのテーブルがあり、Employee_info(stores all employee information )
コードJob_Info(store all job title , job description)
は問題なくデータを挿入しますが、更新時にこのエラーがブラウザに出力されます:
"Cannot add or update a child row: a foreign key constraint fails (Employee_database.job_info, CONSTRAINT job_info_ibfk_4 FOREIGN KEY (Employee_Id) REFERENCES Employee_info (Employee_Id) ON UPDATE CASCADE)"
.
何が問題なのですか? ここにコードがあります
$query = "SELECT * FROM `Employee_info` WHERE `Name_Of_Employee` = '$Name'";
$sqlsearch = mysql_query($query);
$resultcount = mysql_numrows($sqlsearch);
if ($resultcount > 0)
{
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 | | | |
+------------------+-------------+------+-----+---------+----------------+