Php 为什么可以';我是否在组合主键中插入新值?

Php 为什么可以';我是否在组合主键中插入新值?,php,mysql,sql,database,forms,Php,Mysql,Sql,Database,Forms,我想在组合主键中插入值。但是,我只收到erorr消息键“PRIMARY”的重复条目“1-16” 我确信没有连接问题,因为之前的SELECT查询已经运行,站点上的所有其他内容都在运行。下面是我的segmet代码。我非常感谢所有的帮助,但由于我是一个初学者,我真的非常感谢简单明了的答案:)提前谢谢 <form method="post"> <select name="sport_id"> <?php $sql= "

我想在组合主键中插入值。但是,我只收到erorr消息键“PRIMARY”的重复条目“1-16” 我确信没有连接问题,因为之前的SELECT查询已经运行,站点上的所有其他内容都在运行。下面是我的segmet代码。我非常感谢所有的帮助,但由于我是一个初学者,我真的非常感谢简单明了的答案:)提前谢谢

<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)";
}
}

 ?>




您的
INSERT
正在尝试为
字段分配一个非唯一的组合<代码>自动递增
可能会出错;确保不采用顺序中的下一个数字

更新InnoDB表中现有的自动增量列值 不会像对MyISAM和 NDB表格


(看起来您刚刚输入了同一个人和运动项目两次。由于索引的原因,这些字段的组合必须是唯一的。)

数据库中已经分配了主键1-16。检查数据库,确保自动增量的下一个值不包含任何这些值。

MySQL SQL Server。你到底在用什么?我已经删除了相互冲突的标签。请重新标记您实际使用的RDBMS,并且仅标记该RDBMS。谢谢。是否还有一种方法可以删除相同的行,从而只得到唯一的行?您的代码容易受到SQL注入的攻击。你应该使用事先准备好的陈述。