我想从一个用户多次将数据存储在我的数据库表中但是当我尝试保存另一个数据时,它会给我这个错误 - >重复录入' niklakis'对于关键' PRIMARY', 我可以理解为什么会发生这种情况,因为它获得相同的用户名,但我希望这种情况发生,因为我想存储来自该用户的信息,并能够通过使用用户名检索它以获取此表中的所有数据这个特定用户。
如何修复该错误? PS:我希望用户名是我的主键。
这是代码......
if(isset($ _ POST [' submit_next'])){
$username = $_SESSION['username']; $school = $_POST['school']; $degree = $_POST['degree']; $website = $_POST['website']; $start_date = $_POST['start_date']; $end_date = $_POST['end_date']; $start_year = $_POST['start_year']; $end_year = $_POST['end_year']; $degree_description = $_POST['degree_description']; $sqlinsert = "INSERT INTO education (username,school,degree,website,start_date,end_date,start_year,end_year,degree_description)
VALUES(' $ username',' $ school',' $ degree',' $ website', ' $ start_date',' $ end_date',' $ start_year',' $ end_year', ' $ degree_description')&#34 ;;
if(!mysqli_query($dbcon, $sqlinsert)) { die('error inserting new record'); } header('Location: work_history.php'); } else if(isset($_POST['submit_new'])) { $username = $_SESSION['username']; $school = $_POST['school']; $degree = $_POST['degree']; $website = $_POST['website']; $start_date = $_POST['start_date']; $end_date = $_POST['end_date']; $start_year = $_POST['start_year']; $end_year = $_POST['end_year']; $degree_description = $_POST['degree_description']; $sqlinsert = "INSERT INTO education (username,school,degree,website,start_date,end_date,start_year,end_year,degree_description)
VALUES(' $ username',' $ school',' $ degree',' $ website', ' $ start_date',' $ end_date',' $ start_year',' $ end_year', ' $ degree_description')&#34 ;;
if(!mysqli_query($dbcon, $sqlinsert)) { die(mysqli_error($dbcon)); } }
我们提交的submit_next是为了保存数据并移动到下一页,我们提交了submit_new以保存当前数据,然后保存新数据。
答案 0 :(得分:0)
两种可能的解决方案
将用户名设置为非主键(如user3782114所述)
使用两个表,一个存储用户名,密码(那些唯一的字段),另一个表使用其他数据(如学校,网站学位等),用户名作为参考密钥,而不是主键。