我在插入另一个表的外键值时出现问题。
我有两个表,一个是用户,另一个是薪水。这是我的paycheck表,其中包含empId,它是另一个名为users
的表的外键$query = "INSERT INTO paycheck(payCheckId, jobId, payRate,
jobLocation, hoursWorked, startPeriod, endPeriod, empId)
VALUES('', '$pay_rate', '$job_location', '$hours',
'$start', '$end', 'DONT KNOW WHAT TO PUT HERE ')";
$result = mysqli_query($db, $query); //we make the query
我不确定将什么值放入empId,所有值都来自文本框。
答案 0 :(得分:0)
这是创建表示外键的方法
CREATE TABLE `ffxi_characterJob` (
`serverID` int(11) NOT NULL,
`userid` int(10)unsigned NOT NULL,
`characterName` varchar(255) NOT NULL,
`jobAbbr` char(4) NOT NULL,
`jobLevel` int(11) default '0',
PRIMARY KEY (`serverID`,`userid`,`characterName`,`jobAbbr`),
INDEX (`jobAbbr`),
CONSTRAINT FOREIGN KEY (`serverID`,`userid`,`characterName`) REFERENCES `ffxi_characters` (`serverID`,`userid`,`characterName`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT FOREIGN KEY (`jobAbbr`) REFERENCES `ffxi_jobType` (`jobAbbr`) ON DELETE CASCADE ON UPDATE CASCADE
) TYPE=InnoDB;
如果您是这样创建的,那么当您更改第一个(主)表中的值时会自动删除或更新,要插入您需要放置与第一个表的列值匹配的值
emp_id name value
1 aaa 24
2 bbb 23
3 ccc 25
4 ddd 27
pur_id emp_id amount
000 1 500
001 2 100
002 1 50
在第二个表中,emp_id是一个带有第一个表emp_id的外键引用,所以你需要来自第一个表的匹配值
$query = "INSERT INTO paycheck(payCheckId,jobId,payRate,jobLocation,hoursWorked,startPeriod,endPeriod, empid)
VALUES('','$pay_rate','$job_location','$hours','$start','$end', 'value that you want t0 match from first table')";