Python/MySQL Frustration

Philip Semanchuk philip at semanchuk.com
Sun Sep 20 14:37:51 EDT 2009


On Sep 20, 2009, at 2:25 PM, Victor Subervi wrote:

> Hi;
> I have the following code:
>
>     while i < num:
>      cat = 'cat' + str(i)
>      cat = form.getfirst(cat, '')
>      item = 'item' + str(i)
>      item = form.getfirst(item, '')
>      descr = 'descr' + str(i)
>      descr = form.getfirst(descr, '')
>      uom = 'uom' + str(i)
>      uom = form.getfirst(uom, '')
>      price = 'price' + str(i)
>      price = form.getfirst(price, '')
>      sql = 'Category="' + cat + '", Item="' + item + '",  
> Description="' +
> descr + '", UOM="' + uom + '", Price="' + price + '"'
>      sql = 'insert into %s values (%s);' % (company, sql)
>      cursor.execute(sql)
>      i += 1
> Now, all of this posts to the mysql database, but it forms an  
> infinite loop!
> I have num == 1! I have printed num to make sure it's actually only  
> 1 (or 2,
> depending). What in the heck am I doing wrong?



Are you sure that num is a integer and not a string?

What happens when you step through the code with a debugger?

Simplify your code, for your sake and ours. Begin commenting out  
lines, starting with cursor.execute(sql) and working your way up to  
the first line below the while statement. (You can replace the  
cursor.execute() with a print statement to monitor the value of i.)  
Does your infinite loop disappear when you get rid of that stuff?


HTH
Philip



More information about the Python-list mailing list