Php 为什么可以';我是否在组合主键中插入新值?
我想在组合主键中插入值。但是,我只收到erorr消息键“PRIMARY”的重复条目“1-16” 我确信没有连接问题,因为之前的SELECT查询已经运行,站点上的所有其他内容都在运行。下面是我的segmet代码。我非常感谢所有的帮助,但由于我是一个初学者,我真的非常感谢简单明了的答案:)提前谢谢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= "
<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注入的攻击。你应该使用事先准备好的陈述。