On Thu, 26 Jan 2017, Karl Young wrote:

DTD([email protected])@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
[email protected]
Voice: 301-217-9220
  Fax: 301-217-9277
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-python
To unsubscribe, send any mail to "[email protected]"

Reply via email to