MySQL数据库条目重复

时间:2011-06-20 22:58:30

标签: php mysql sql

我有一个PHP脚本搜索脚本,它记录在MySQL数据库中以值1列开头的每个查询。目前,如果多次搜索相同的术语,则会在值列中的数字中添加1。但是,在两次搜索同一个单词后,查询将再次添加到数据库中。为什么会这样?

我的PHP代码是:

<?php

$database=mysql_connect("localhost","username","password");
mysql_select_db("database",$database);

$query=$_GET['q'];

logQuery($query);
function logQuery($query){
$query="insert into queries (query) values ('$query') on duplicate key update value=value+1";
mysql_query($query);
}

?>

3 个答案:

答案 0 :(得分:3)

听起来query不是您的主键,或者$ query与DB内容不同。我的钱在钥匙上;它可能是一个复合键吗?即idquery

在这种情况/示例中,使用mysql_escape_string(trim($query))必须避免SQL注入。

答案 1 :(得分:0)

您是否将查询字段定义为唯一?也许是空格或其他东西,尝试使用md5作为唯一键

答案 2 :(得分:0)

如果第二次添加查询,那么它显然不是主键,这会阻止'on duplicate key'工作