Path: csiph.com!newsfeed.hal-mli.net!feeder3.hal-mli.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!newsfeed.xs4all.nl!newsfeed3.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.006 X-Spam-Evidence: '*H*': 0.99; '*S*': 0.00; 'else:': 0.03; 'charset:iso-8859-7': 0.04; 'retrieved': 0.05; 'data:': 0.09; 'host,': 0.09; 'python': 0.11; '%s,': 0.16; '(host,': 0.16; 'code?': 0.16; 'fine.': 0.16; 'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16; 'hits': 0.16; 'sources.': 0.16; 'subject:fails': 0.16; 'subject:when': 0.16; 'applies': 0.16; 'wrote:': 0.18; 'later': 0.20; 'not,': 0.20; 'primary': 0.26; 'values': 0.27; 'header:In-Reply-To:1': 0.27; 'record': 0.27; 'host': 0.29; '[1]': 0.29; 'am,': 0.29; 'message- id:@mail.gmail.com': 0.30; 'code': 0.31; 'sources': 0.33; 'something': 0.35; 'received:google.com': 0.35; 'google': 0.35; 'question,': 0.38; 'to:addr:python-list': 0.38; 'to:addr:python.org': 0.39; 'how': 0.40; 'read': 0.60; 'expression': 0.60; 'new': 0.61; 'browser': 0.61; 'first': 0.61; 'save': 0.62; 'city': 0.66; 'subject:get': 0.81; 'vid': 0.84; 'visitor': 0.84; '2013': 0.98 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; bh=bFc9z8/U06T5YEUe4nPd35aVls3fum6eBffr8Pg3AGs=; b=fr3LZp+dWmGg5q2NIF3mN4otrFBm9RgTM4Kv634ZLjfKCvR5Dvczird4n3k9q3ockQ Nq2FIoV3PGiP8VMFTh/OgKWfLm07cOConDNxbDymkdgJmQhPyzIS1Blv7kLHNz7gWg7U OEFPCKAmUP6+q3fvabJlXiyxvZRItFw4gVR25TPtUXHoEuM9NDZkva6TQq5vVxlUg8SV ecisGn+TyGpH/sl72gx9uksspZtPGBDL2s978SRqV7N7+3dXLSv28fv08arW5CFvyb63 NEgXNzQ3kGew1NU2Vd//LGZ2hufT/w+bnBzVmFpNhjeynVB0Fn2Bkw/3+5YkkY+/9oEF YSFA== MIME-Version: 1.0 X-Received: by 10.68.130.104 with SMTP id od8mr22200513pbb.29.1381012581796; Sat, 05 Oct 2013 15:36:21 -0700 (PDT) In-Reply-To: References: Date: Sun, 6 Oct 2013 09:36:21 +1100 Subject: Re: Select fails when cookie tried to get a numeric value From: Chris Angelico To: python-list@python.org Content-Type: text/plain; charset=ISO-8859-7 Content-Transfer-Encoding: quoted-printable X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 42 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1381012585 news.xs4all.nl 15929 [2001:888:2000:d::a6]:55686 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:56224 On Sun, Oct 6, 2013 at 1:31 AM, =CD=DF=EA=EF=F2 =C1=EB=E5=EE=FC=F0=EF=F5=EB= =EF=F2 wrote: > # find the visitor record for the (saved) cID and current > host > cur.execute('''SELECT * FROM visitors WHERE counterID =3D= %s > and cookieID =3D %s''', (cID, cookieID) ) > > data =3D cur.fetchone() #cookieID is unique > > if not data: > > # first time visitor on this page, create new rec= ord > cur.execute('''INSERT INTO visitors (counterID, > cookieID, host, city, useros, browser, ref, lastvisit) VALUES (%s, %s, %s= , > %s, %s, %s, %s, %s)''', (cID, cookieID, host, city, useros, browser, ref, > lastvisit) ) > else: > # found the page, save its primary key for later = use > vID =3D data[0] > # UPDATE record using retrieved vID > cur.execute('''UPDATE visitors SET host =3D %s, c= ity =3D > %s, useros =3D %s, browser =3D %s, ref=3D %s, hits =3D hits + 1, lastvisi= t =3D %s > > WHERE counterID =3D %s and cookieID =3D %s''', (host, city, useros, brows= er, > ref, lastvisit, vID, cookieID) ) Do you understand the expression "race condition", and how it applies to the above code? If not, you MUST read up on that before relying on code like this, and as that's not a Python question, I recommend Google and Wikipedia.[1] ChrisA [1] Yes, I know they're not primary sources. For something like this, tertiary sources are going to do him fine.