Php 项2的重复项“”

Php 项2的重复项“”,php,mysql,duplicates,Php,Mysql,Duplicates,下面是php代码,它为键2错误提供了重复条目 <?php $host = "localhost"; $user = "admin"; $pass = "123"; $connection = mysql_connect($host,$user,$pass) or die (mysql_errno().": ".mysql_error()."<BR>"); $userid= mysql_real_escape_string($_POST['userid']);

下面是php代码,它为键2错误提供了重复条目

<?php

$host = "localhost"; 
$user = "admin"; 
$pass = "123";
$connection = mysql_connect($host,$user,$pass) or die (mysql_errno().": ".mysql_error()."<BR>");

    $userid=  mysql_real_escape_string($_POST['userid']);
$latitude=  mysql_real_escape_string($_POST['latitude']);
$longitude=  mysql_real_escape_string($_POST['longitude']);
//$time=  mysql_real_escape_string($_POST['time']);


$db_select=mysql_select_db("new");
if(!$db_select){
    die(mysql_error());
    echo "error";
}

$query= "INSERT INTO location(Userid, Latitude, Longitude )
VALUES ('{$userid}', '{$latitude}', '{$longitude}'); " ;

if($medo=mysql_query($query)){
    header("localhost/filename");
    exit;
}else{
    echo"<p> Error</p>";
    die(mysql_error());
}

我认为我的代码没有问题。请提供帮助。

如果您想要每个用户的唯一记录,您必须检查用户记录是否已经存在,然后使用更新而不是插入


如果每个用户都有许多记录,只需从“Userid”列中删除主键或唯一键即可。

因为我认为如果已经存在,您可能需要更新,请对MySQL请求使用以下语法:

$query= "INSERT INTO location (Userid, Latitude, Longitude )
VALUES ('{$userid}', '{$latitude}', '{$longitude}') 
ON DUPLICATE KEY UPDATE Latitude='{$latitude}', Longitude='{$longitude}';";

这样,当您的用户已经存在时,它将用新坐标更新,如果用户id是主键,则使其自动递增,不要从前端发布此值


如果它不是主键,那么它肯定是唯一键。因此,在插入之前,首先检查记录是否已经存在。

。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果您选择PDO,。问题是,我没有足够的时间学习甚至更改代码。这个问题有解决办法吗?可能是快捷方式?此错误意味着,ID列的主键重复,或者列的主键重复,这是索引的一部分。检查表中是否有重复项。考虑使用,或者,恐怕…你需要学习,这是正确的解决方案。。。pdo和mysqli像mysql一样简单,通常用户id应该是唯一的,所以我假设这是SQL表中唯一的列。在这种情况下,您插入的变量之一已经在数据库表中,并且该变量的列具有唯一键。假设用户ID是冲突的,可以尝试输入不同的ID,或者不允许用户输入他们的ID,只是让列自动递增。如果你不知道它是如何工作的,或者为什么工作,就像毁掉你的数据库一样。被否决了。我想你只是误解了我的意思。如果需要为每个用户存储多个坐标,则必须删除“主键”。例如:[user1:23,83],[user1:83,28]