如果执行重复搜索,则使用添加的用户更新mysql字段


Update mysql field with addition users if duplicate search is performed

我有一个网站,用户的搜索用他们的用户id标记。现在,如果另一个用户搜索重复的,它会在我的计数字段中添加+1,但它仍然保留搜索它的原始用户id。

如何在重复搜索中开始为表中的userId字段创建用户ID的"数组"。

    $sql="INSERT INTO trending (searchstring, timecount, userSearch) VALUES('$_POST[contentVar]', NOW(), '$uid') ON DUPLICATE KEY UPDATE count = count + 1";

searchstring是用户搜索,timecount是时间,userSearch是搜索用户的用户ID。

SQL注入
永远不要将超级全局变量直接注入SQL。对于update部分,您不能忘记set关键字。

这样做:

$content = mysql_real_escape_string($_POST['contentvar']);
$uid = mysql_real_escape_string($uid);
$sql="INSERT INTO trending (searchstring, timecount, userSearch)
      VALUES('$contentvar', NOW(), '$uid') 
      ON DUPLICATE KEY UPDATE SET count = count + 1";

请参阅:http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
以及:如何从";Bobby Tables";XKCD漫画作品?

您是否考虑过为每次搜索插入一个新行,然后您可以在需要时通过$uid查询表,并以这种方式形成数组。

有两种可能的方法:1。创建一个保存用户id的新表,或者修改userSearch列以保存序列化数组。两者都不能通过简单地修改UPDATE查询来实现。