This is required because you are using the DAL outside web2py framework, """ from gluon import * import time db = DAL('mysql://web2py:web2p ... """
When used like above, you have to call db.commit to complete the transaction. Normally all database insert/updates/deletes are committed at the end of each action by the framework.