我正在構建一個簡單的Web數據庫連接,但是當我爲我的表分配一個外鍵比我無法通過html-php插入數據。 任何人都可以查看我的代碼,並給我任何建議/想法:用php和外鍵插入選項 - 不可能
人表的主鍵是ID 外鍵:KEY boardname
(boardname
), KEY depname
(depname
)
板表主關鍵是板名
deparment表主鍵是depname
Person表
CREATE TABLE IF NOT EXISTS `person` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`name` varchar(10) NOT NULL,
`surname` varchar(10) NOT NULL,
`boardname` varchar(10) NOT NULL,
`bsdate` date NOT NULL,
`budate` date NOT NULL,
`depname` varchar(10) NOT NULL,
`desdate` date NOT NULL,
`deudate` date NOT NULL,
PRIMARY KEY (`id`),
KEY `boardname` (`boardname`),
KEY `depname` (`depname`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=16 ;
板表
CREATE TABLE IF NOT EXISTS `board` (
`boardname` varchar(10) NOT NULL,
`boarddesc` text NOT NULL,
PRIMARY KEY (`boardname`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Depament表
CREATE TABLE IF NOT EXISTS `deparment` (
`depname` varchar(10) NOT NULL,
`depcomment` text NOT NULL,
PRIMARY KEY (`depname`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
現在即時通訊使用這個簡單的腳本插入數據數據庫和它不工作我不知道爲什麼,但是當我從人表中刪除外鍵它正在工作。任何消化,我必須保持外鍵。下面
是HTML PHP代碼:
HTML表單
<body>
<h1>New Student</h1>
<form action="insert_student.php" method="post">
<table border="1">
<tr>
<td>ID</td>
<td><input type="text" name="id" maxlength="30" size="13"></td>
</tr>
<tr>
<tr>
<td>First Name</td>
<td><input type="text" name="name" maxlength="30" size="13"></td>
</tr>
<tr>
<td>Last Name</td>
<td> <input type="text" name="surname" maxlength="30" size="30"></td>
</tr>
<tr>
<td>Board Member From/Until</td>
<!--<td><input type="text" name="boardid" maxlength="7" size="7"></td>-->
<td><input type="date" name="bsdate" value="ICS" /><!--FSR-->
<input type="date" name="budate" value="Infor" />
</td>
</tr>
<tr>
<td>Department From/Until</td>
<!-- <td> <input type="text" name="depname" maxlength="30" size="30"></td>-->
<td><input type="date" name="desdate" value="ASE" />
<input type="date" name="deudate" value="WEB" />
</td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Register"></td>
</tr>
</table>
</form>
</body>
PHP插入
<?php
@ $db = new mysqli('localhost', 'e_kolori', 'kolori1515', 'e_color');
if (mysqli_connect_errno())
{
echo 'Error: Could not connect to database. Please try again later.';
exit;
}
$query = "INSERT INTO person (name, surname, bsdate, budate, desdate, deudate) VALUES
('$_POST[name]', '$_POST[surname]', '$_POST[bsdate]', '$_POST[budate]', '$_POST[desdate]', '$_POST[deudate]')";
$result = $db->query($query);
if ($result)
echo $db->affected_rows.' student inserted into database.';
$db->close();
?>
謝謝理查德 – Shkolla