【发布时间】:2013-05-08 05:47:00
【问题描述】:
这是给我“键 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());
}
我认为我的代码没有问题。请帮忙。
【问题讨论】:
-
Please, don't use
mysql_*functions in new code。它们不再维护and are officially deprecated。看到red box?改为了解prepared statements,并使用PDO 或MySQLi - this article 将帮助您决定哪个。如果你选择 PDO,here is a good tutorial. -
问题是,我没有足够的时间来学习甚至更改我的代码。这个问题有解决方案吗?也许是捷径?
-
这个错误意味着,你有
PRIMARY KEY重复的 ID 列,或重复的列,这是UNIQUE索引的一部分。检查表是否有重复项。考虑使用INSERT INGNORE或REPLACE。 -
恐怕..你需要学习,这是正确的解决方案......而pdo和mysqli_*就像mysql_*一样简单
-
通常用户 ID 应该始终是唯一的,所以我假设这是您的 SQL 表中的唯一列。在这种情况下,您要插入的变量之一已经在您的数据库表中(并且该变量的列具有唯一键)。假设用户 ID 是冲突的,可能会尝试输入不同的 ID,或者不允许用户输入他们的 ID 并让该列自动增加。
标签: php mysql duplicates