gpt4 book ai didi

php - 使用 php 和外键插入选项 - 不可能

转载 作者:行者123 更新时间:2023-11-30 22:15:37 24 4
gpt4 key购买 nike

我正在构建一个简单的网络数据库连接,但是当我为我的表分配一个外键时,我无法通过 html-php 插入数据。谁能检查我的代码并给我任何建议/想法:

person 表主键是 ID外键:KEY boardname (boardname), KEY depname (depname)

board Table Primary key is boardname

部门表主键是depname

人物表

   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;

部门表

CREATE TABLE IF NOT EXISTS `deparment` (
`depname` varchar(10) NOT NULL,
`depcomment` text NOT NULL,
PRIMARY KEY (`depname`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

现在我正在使用这个简单的脚本在数据库中插入数据但它不起作用我不知道为什么,但是当我从 person 表中删除外键时它正在工作。任何建议,我必须保留外键。

下面是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();
?>

最佳答案

您的表指定所有字段都是必需的。

您的插入语句缺少“depname”和“boardname”的值。

此外,(可能不相关但值得检查)您的“董事会”和“部门”表中必须存在相关条目,您才能插入引用它们的记录。

关于php - 使用 php 和外键插入选项 - 不可能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38397522/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com