我想每天为游戏保存前100名的结果。
我有两个表:Users,Stats。
用户数据库有两列: userID (mediumint(8)unsigned AUTO_INCREMENT)和 userName (varchar(500))。
统计数据库有三列:时间(日期),用户ID (mediumint(8)无符号AUTO_INCREMENT),结果(tinyint(3) )unsigned)。
现在,每次执行查询(每天)时,我都有100个结果的用户名数组。所以这就是我需要做的事情:
对于数组中的每个结果:
在php和mysql中执行此操作的最佳方法是什么。有没有办法避免在'for'循环中有200个查询。
感谢您的时间。
答案 0 :(得分:1)
200天查询标准日没什么。您可以将所有内容保留原样,并且不会出现任何问题。
为什么你有一个带有用户名的数组,而你应该有用户id呢?
Mysql INSERT查询支持多个VALUES语句。所以,你可以组装一个像
这样的字符串VALUES(time,userid,result),(time,userid,result),(time,userid,result)
立即运行。
另请注意,userID应为int,而不是中等int,而在stats表中则不应自动增加。
答案 1 :(得分:0)
使用一对prepared statements。您仍将每次运行100次,但查询本身已经被解析(甚至由DB服务器缓存),它只需要运行100个不同的参数集,这非常有效。 / p>