[英]Incrementing a mysql count field
我在表中有一個計數字段,我需要遞增,這就是我所擁有的。
$click_tracker_row = mysql_fetch_array($result);
$current_count = $click_tracker_row['count'];
$new_count = $current_count + 1;
$query_wiki ="UPDATE click_tracker SET count = '{$new_count}' WHERE click_tracker_id = '{$click_tracker_row['click_tracker_id']}' LIMIT 1";
$result = mysql_query($query) ;
但它永遠不會改變....有沒有更好的方法來做到這一點,為什么這不工作計數是一個整數字段
您應該只使用SQL更新此計數器並使用PHP的mysql_real_escape_string()
函數來防止SQL注入:
$query_wiki ="UPDATE click_tracker SET count = count + 1 WHERE click_tracker_id = '".mysql_real_escape_string($click_tracker_row['click_tracker_id'])."' LIMIT 1";
此外,你的mysql_query()
call中有一個拼寫錯誤。 您需要將$query_wiki
傳遞給它。
解決第一個問題是有更好的方法 ,是的。 為了增加MySQL中的計數,只要您有要更新的ID,就不需要獲取任何內容,並且還應確保為查詢正確轉義id。
$id = mysql_real_escape_string($id); // replace $id with however you get the tracker_id
$query_wiki ="UPDATE click_tracker SET count = count + 1 WHERE click_tracker_id = '{$id}' LIMIT 1";
要回答第二個問題, 為什么這不能在較低的部分使用mysql_query($query)
而不是mysql_query($query_wiki)
。
$click_tracker_row = mysql_fetch_assoc($result);
$query_wiki ="UPDATE `click_tracker`
SET `count` = `count` + 1
WHERE `click_tracker_id` = '".$click_tracker_row['click_tracker_id']."'
LIMIT 1";
$result = mysql_query($$query_wiki) ;
如果您有大量的點擊次數,那么每次點擊增加計數可能會變得低效,因為它會導致大量的小數據庫更新。 換句話說,你想要這樣做
UPDATE click_tracker SET count = count + 5...
代替
UPDATE click_tracker SET count = count + 1...
UPDATE click_tracker SET count = count + 1...
UPDATE click_tracker SET count = count + 1...
UPDATE click_tracker SET count = count + 1...
UPDATE click_tracker SET count = count + 1...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.