Hey Tommy,

I get the same when seting it to a_downloads=a_downloads+1  
It still increments by 2
I've never run into this before.
RD


On Nov 26, 2010, at 11:45 PM, Tommy Pham wrote:

>> -----Original Message-----
>> From: Tamara Temple [mailto:tamouse.li...@gmail.com]
>> Sent: Friday, November 26, 2010 7:54 PM
>> To: Richard West
>> Cc: PHP General Mailing List
>> Subject: Re: [PHP] PHP Add +1 mysql updates by 2?
>> 
>> 
>> On Nov 26, 2010, at 8:36 PM, Richard West wrote:
>> 
>>> Hey guys,
>>> I've never run into this before.
>>> I have a field in mysql for page views.
>>> So I pull out value and do +1 to new value - after UPDATE SET it has
>>> incremented by 2?
>>> 
>>> $val = $row['a_downloads'] ;
>>> 
>>> $new_val = $val+1;
>>> 
>>> mysql_query("UPDATE cbn_articles SET a_downloads='$new_val' WHERE
>> a_id
>>> = '".$_GET['id']."' ");
>>> 
>>> Any ideas? What am I missing?
>>> RD
>> 
>> a_downloads wouldn't happen to be an autoincrement value, would it?
>> 
> 
> IIRC, the auto_increment should only increment on an INSERT statement and
> the field is omitted.  Besides, in MySQL, auto_increment must also be part
> of the primary key.  From Richard's query, I'd say that his primary key
> field is most likely a_id.  IMO, the best way to count something is to set
> the field to an int(eger) type.  Then just run 'UPDATE table_name SET
> count_field = count_field +1 WHERE criteria_column =  $criteria'.  This is
> more safe as you many have simultaneous users downloading.  This would
> ensure an accurate count, whereas your logic wouldn't.
> 
> Regards,
> Tommy
> 
> PS:  Richard, you should validate and sanitize all inputs.  Your query is
> prone to injection attack (deletion of rows or your entire DB deleted).  Use
> either mysql_escape_string or, better yet, mysqli to prepare the statement
> and bind the parameters.
> 


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to