我正在尝试记录在我的网站上发生的搜索。当有人搜索什么东西时,我想首先检查数据库,如果它以前被搜索过。如果它有添加+1计数的搜索次数,如果它还没有提交到数据库。
我现在遇到的问题是,每当你搜索时,它都会更新所有记录的搜索词。我猜是因为我还没有设置id。如何在第一个select查询中获得搜索词的id,并在第二个查询中将该id作为变量传递,以便它只更新与该id关联的搜索词?
$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。
发布于 2014-09-13 01:55:50
我已经用下面的代码让它工作了。我是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') ");
}https://stackoverflow.com/questions/25813350
复制相似问题