【发布时间】:2020-02-28 22:38:21
【问题描述】:
我想将值插入到我的组合主键中。但是,我只收到错误消息 Duplicate entry '1-16' for key 'PRIMARY' 我确信没有连接问题,因为以前的 SELECT 查询已经工作,并且站点上的其他所有内容都在运行。下面是我的段代码。我非常感谢所有的帮助,但由于我是初学者,我真的很喜欢简单明了的答案:) 提前致谢!
<form method="post">
<select name="sport_id">
<?php
$sql= "SELECT * FROM sport";
$resultat= $kobling->query($sql);
while ($rad = $resultat->fetch_assoc()) {
$sport_id=$rad["sport_id"];
$sportName=$rad["name"];
echo "<option value='$sport_id'> $sportName </option>";
}
?>
</select>
<select name="person_id">
<?php
$sql= "SELECT person_id, fname, lname FROM person";
$resultat= $kobling->query($sql);
while ($rad= $resultat->fetch_assoc()) {
$person_id=$rad["person_id"];
$fname= $rad["fname"];
$lname =$rad["lname"];
$navn= $fname. " ". $lname;
echo "<option value='$person_id'> $navn </option>";
// code...
}
?>
</select>
Året du startet:
<input type="number" name="startyear" value="">
<input type="submit" name="leggtil3" value="Legg til">
</form>
<?php
if (isset($_POST["leggtil3"])) {
$person_id=$_POST["person_id"];
$sport_id = $_POST["sport_id"];
$startyear=$_POST["startyear"];
$sql= "INSERT INTO personsport (sport_id, person_id, startyear) values ('$sport_id', '$person_id', '$startyear')";
if ($kobling->query($sql)) {
echo "koblingen $sql ble gjennomført";
}
else {
echo "det var et problem med $sql ($kobling->error)";
}
}
?>
【问题讨论】:
-
MySQL SQL Server。你实际上在使用什么?我已经删除了冲突的标签。请重新标记您实际使用的 RDBMS,并且仅该 RDBMS。谢谢。
-
还有没有办法删除相同的行,所以你只得到唯一的行?
-
您的代码易受 SQL 注入攻击。您应该使用准备好的语句。
标签: php mysql sql database forms