Am I interacting with the database correctly?

John Fabiani jfabiani at
Sun Jan 18 16:54:06 CET 2009

Hussein B wrote:

> Hey,
> I'm new with database interactions in Python and I'm not sure if I'm
> handling the cursor and transactions correctly:
> ++++++++
> cursor = db.cursor(MySQLdb.cursors.DictCursor)
> cursor.execute(flate_rate_pkgs_sql)
> rows = cursor.fetchall()
> #I have for loop here to iterate over rows
>    cursor.execute() 
>    rows = cursor.fetchall()
>    # some more cursor.execute() calls but only SQL select statements
>    # here is another for loop that contains try block
>           # here are cursor.execute() calls, both insert and update
>           db.commit()
>           # in the except code block, I use db.rollback()
> ++++++++
> As you see, my script contains only one db object and one cursor
> object and both the db and cursor objects are used multiple times, it
> is ok?
> As you might figured, this is a script for reports :)
> Thanks.

I have never worked with MySQL.  I do work with others.  The first part
looks fine.  If you insert, update or delete then you need a 'commit' or
a 'rollback'.  Preparing data for a report it is unlikely that you need to
commit or rollback anything.  After all you are only using 'select'.


More information about the Python-list mailing list