我想将值插入组合的主键中。但是,我只收到erorr消息键“ PRIMARY”的重复条目“ 1-16” 我肯定没有连接问题,因为以前的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)";
}
}
?>
答案 0 :(得分:0)
您的INSERT
试图为PRIMARY
字段分配非唯一组合。 Auto Increment
可能会混乱;确保不采用下一个数字。
更新InnoDB表中的现有AUTO_INCREMENT列值 不会像对MyISAM那样重置AUTO_INCREMENT序列,并且 NDB表。
(看起来您刚刚进入同一个人并且两次运动。根据您的索引,这些字段的组合必须唯一。)
答案 1 :(得分:0)
主键1-16已在数据库中分配。检查数据库,以确保下一个用于自动增量的值不包含任何这些值。