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

既に存在する場合は更新したいと思うので、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

各ユーザーに一意のレコードが必要な場合は、ユーザー レコードが既に存在するかどうかを確認してから、INSERT の代わりに UPDATE を使用する必要があります。

各ユーザーのレコードが多数ある場合は、'Userid' 列から PRIMARY KEY または UNIQUE KEY を削除するだけです。

于 2013-05-14T04:00:07.980 に答える