Php 项2的重复项“”
下面是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
$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]