1

这是给我“键 2 的重复条目”错误的 php 代码...

<?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());
}

我认为我的代码没有问题。请帮忙。

4

3 回答 3

0

如果 user_id 是主键,则使其自动递增并且不要从前端发布此值。

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

于 2013-05-14T06:51:06.267 回答
0

我想如果已经存在,您会想要更新,请将此语法用于您的 MySQL 请求:

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

这样当您的用户已经存在时,它将使用新坐标进行更新

于 2013-05-14T06:07:38.477 回答
-1

如果您想要每个用户的唯一记录,则必须检查用户记录是否已经存在,然后使用 UPDATE 而不是 INSERT。

如果每个用户有很多记录,只需从“Userid”列中删除 PRIMARY KEY 或 UNIQUE KEY。

于 2013-05-14T04:00:07.980 回答