我有一个网站,用户的搜索用他们的用户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
查询来实现。