我想为hit_count
的前一行的值添加1,但是如果快速运行多个查询(即页面加载多次,我担心这样做可能不安全)第二 - 这是我正在制作的网络应用程序,所以我想确保支持任何数量的页面加载。)
以下是我的想法:
$result = mysql_query("SELECT * FROM rotation");
$fetch = mysql_fetch_assoc($result);
$update_hit = $fetch['hit_counter']+1;
$query = "INSERT INTO rotation (hit_counter, rotation_name) VALUES ('$update_hit', '$rotation_name')";
$result = mysql_query($query);
我考虑过将hit_counter
列设置为UNIQUE KEY
,但我不知道之后我还会做什么。
我会使用AUTO_INCREMENT
,但问题是,我需要在脚本的其余部分中使用实际的hit_counter
值。
任何想法,评论和建议都将不胜感激!
修改:我使用了hit_count
和hit_counter
,这是一个错字。更新以避免任何混淆。
答案 0 :(得分:1)
当您将名字+计数器设为唯一值时,您可以使用DUPLICATE KEY functionality:
INSERT INTO rotation SET hit_counter = 1, rotation_name= 'name'
ON DUPLICATE KEY UPDATE hit_counter = hit_counter + 1
性能方面(如果您的要求允许)我建议使用像f.e.这样的缓存机制批量推送更新(每100次点击)。分布式缓存。
答案 1 :(得分:1)
您可以使用AUTO_INCREMENT
,如果您需要在其余脚本中插入ID,则可以使用mysql_insert_id来获取它。