Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 9 Feb 2017 11:11:44 -0500 (EST)
From:      DTD <doug@safeport.com>
To:        Karl Young <karly@kipshouse.org>
Cc:        python@FreeBSD.org
Subject:   Re: MySQLdb question
Message-ID:  <alpine.BSF.2.00.1702091045250.13043@bucksport.safeport.com>
In-Reply-To: <20170126230225.GV26386@mailboy.kipshouse.net>
References:  <alpine.BSF.2.00.1701261321410.15335@bucksport.safeport.com> <20170126230225.GV26386@mailboy.kipshouse.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 26 Jan 2017, Karl Young wrote:

> DTD(doug@safeport.com)@2017.01.26 13:23:56 -0500:
>> I am using py27-MySQLdb-1.2.5 (the default) for FreeBSD 10.3
>>
>>   cmd="update ipv4 set s8='%s',s16='%s',s24='%s' where ip='%s'" % (s8,s16,s24,row[0])
>>   c.execute(cmd)
>
> When you say that it isn't working, I assume you mean it's not updating
> any rows?  To see if that's the case, you can assign the return from
> execute and print the result, and print it out.
>
> numrows = c.execute(cmd)
> print numrows
>
> Or use the rowcount attr of the cursor
>
> print c.rowcount
>
> If it's showing 0 rows, try running select where
>
> select * where ip='1.186.248.251
>
> Is it possible you're connecting to a different host/db than you're
> using for your manual SQL?

Karl, the issue is InnoDB and perhaps MySQL changes in 5.6.34. Using the cli 
autocommit is on by default and using python it is not. A commit must be done 
after a series of updates. db.close apparently does not do a commit. This 
behavior is somewhat masked in other program as a select seems to cause the 
commit to be done. I don't know if db.close should do a commit or not.

Thanks again for the response.

Doug

_____
Douglas Denault
http://www.safeport.com
doug@safeport.com
Voice: 301-217-9220
   Fax: 301-217-9277



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.00.1702091045250.13043>