我无法想到如何使用mysql和php做到这一点。基本上我希望能够将数据提交到mysql数据库中,但在插入之前,它将检查该条目是否已存在。
$guid=$_POST['guid'];
$name=$_POST['name'];
//Username
$user="webhost";
//Password
$pass="*******";
//IP To Host
$ip="***********";
//Database
$db="dayz2";
//Table
$table="whitelist";
//Database Connection
$con=@mysql_connect("$ip", "$user", "$pass")
or die(mysql_error());
//Select Database
$dbcon=@mysql_select_db($db, $con)
or die(mysql_error());
$dupesql = "SELECT * FROM $table where (name = '$name' AND guid = '$guid')";
$duperaw = mysql_query($dupesql);
if (mysql_num_rows($duberaw) > 0) {
echo "Entry Already Exists";
}
else {
//Query Data Into Whitelist Table
$sql="INSERT INTO $table (name, guid) VALUES ('$name', '$guid')";
//Submit Data into Whitelist Table
$result=@mysql_query($sql, $con) or die(mysql_error());
}
?>
答案 0 :(得分:0)
这取决于您要执行的操作 - 查询的准确条件是什么?
您有几种选择:
如果您只想插入没有重复主键的新行,请使用INSERT IGNORE ...
。请参阅http://dev.mysql.com/doc/refman/5.5/en/insert.html。
使用INSERT ... ON DUPLICATE KEY UPDATE
插入新行并更新主键匹配的行。
请参阅http://dev.mysql.com/doc/refman/5.5/en/insert-on-duplicate.html。
使用普通的SQL SELECT ...
在结果执行业务逻辑之前先提取结果,然后根据您的要求决定将哪个结果INSERT ...
或UPDATE ...
。