I have been trying to insert data into the database using the following code in python:
import sqlite3 as db conn = db.connect('insertlinks.db') cursor = conn.cursor() db.autocommit(True) a="asd" b="adasd" cursor.execute("Insert into links (link,id) values (?,?)",(a,b)) conn.close()
The code runs without any errors. But no updation to the database takes place. I tried adding the conn.commit()
but it gives an error saying module not found. Please help?
If you want to inset the data manually(fully graphical) do the following: Go to the DDMS perspective. File explorer (tab-menu) Locate your db (/data/data/com.
Inserting data using python Import sqlite3 package. Create a connection object using the connect() method by passing the name of the database as a parameter to it. The cursor() method returns a cursor object using which you can communicate with SQLite3.
You do have to commit after inserting:
cursor.execute("Insert into links (link,id) values (?,?)",(a,b)) conn.commit()
or use the connection as a context manager:
with conn: cursor.execute("Insert into links (link,id) values (?,?)", (a, b))
or set autocommit correctly by setting the isolation_level
keyword parameter to the connect()
method to None
:
conn = db.connect('insertlinks.db', isolation_level=None)
See Controlling Transactions.
It can be a bit late but set the autocommit = true
save my time! especially if you have a script to run some bulk action as update/insert/delete
...
Reference: https://docs.python.org/2/library/sqlite3.html#sqlite3.Connection.isolation_level
it is the way I usually have in my scripts:
def get_connection(): conn = sqlite3.connect('../db.sqlite3', isolation_level=None) cursor = conn.cursor() return conn, cursor def get_jobs(): conn, cursor = get_connection() if conn is None: raise DatabaseError("Could not get connection")
I hope it helps you!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With