如果不存在则选择插入添加或更新

时间:2014-09-12 17:05:41

标签: mysql select insert sql-update

即时尝试记录我网站上发生的搜索。当有人搜索我想先检查数据库的东西时,如果之前已搜索过。如果它没有将搜索数量提交到数据库,则它会为搜索次数添加+1计数。

目前我遇到的问题是,只要您搜索它,就会更新所有已记录的搜索字词。我猜是因为我没有设置身份证。如何在第一个选择查询中获取搜索词的id并将id作为变量传递给第二个查询,以便它只更新与该id相关联的searchterm?

$result = mysql_query("SELECT * FROM wss_search WHERE searchterm ='$trimmed' ");

if( mysql_num_rows($result) > 0) {
mysql_query("UPDATE wss_search SET  count = count+1 WHERE searchterm = '$trimmed' ");
}
else
{
mysql_query("INSERT INTO wss_search (id, searchterm, count) VALUES ('NULL', '$trimmed', '1') ");
}

非常感谢任何帮助。

我也知道我应该使用mysqli,但其余的软件还没有更新到mysqli。

1 个答案:

答案 0 :(得分:0)

我已经使用以下代码工作了。我是php新手你能告诉我为什么它不安全以及我需要做些什么来保证它的安全?

$var = $_GET['q'] ;
$trimmed = mysql_secure($var);

$result = mysql_query("SELECT id FROM wss_search WHERE searchterm ='$trimmed' ");

while($row = mysql_fetch_array($result)) {

    $id = $row['id'];
}

if( mysql_num_rows($result) > 0) {
mysql_query("UPDATE wss_search SET  count = count+1 WHERE id = '$id' and searchterm = '$trimmed' ");
}
else
{
mysql_query("INSERT INTO wss_search (id, searchterm, count) VALUES ('NULL', '$trimmed', '1') ");
}
相关问题