If you need to access MySQL with Python MySQLdb is your friend.
Executing commands
Here we pass two variables into INSERT command, first you need to create a cursor, then execute against this cursor.
After execute, commit must be applied or changes wont happen in your database.
TIP: After execute, you can get primary ID from previous insert with:
At this point, your query is executed, now you need to store your results
Note: By default mysql db will return you only 1 row from result set, so if you specify maxrows=0 in your fetch_row, it will return all rows from the results set.
Oh Yes.. this was my biggest issue, i didn't realize that result tuple had one tuple inside of it, stupid me!
Basically at this point if you print results output is:
You can simply loop trough results with for each or get individual row by giving and index, row1 is naturally index number of 0 and row2 is index number of 1
And same applies to column..
Closing connection
Very good User guide can be found here. I lost few hairs when i was first playing with this so i decided to create small tutorial of my own. Hopefully will save some hair from someone
This is very basic stuff
This is very basic stuff
Installing MySQLdb
In ubuntu system you need to install packet called python-mysqldb. Sources itself can be found from here
apt-get install python-mysqldb
Connecting database
import MySQLdb
try:
conn = MySQLdb.connect(host=address,user=username,passwd=password,db=database)
except:
# Connection failed
Executing commands
Here we pass two variables into INSERT command, first you need to create a cursor, then execute against this cursor.
After execute, commit must be applied or changes wont happen in your database.
cursor = conn.cursor()
cursor.execute("""INSERT INTO data (col1,col2) VALUES (%s, %s)""", (var1,var2,))
conn.commit()
TIP: After execute, you can get primary ID from previous insert with:
print str(cursor.insert_id())
Select from database
sql = "SELECT * FROM stuff"
# Query
conn.query(sql)
At this point, your query is executed, now you need to store your results
# Store results
result_store = conn.store_result()
Note: By default mysql db will return you only 1 row from result set, so if you specify maxrows=0 in your fetch_row, it will return all rows from the results set.
# Fetch row from store
results = result_store.fetch_row(maxrows=0)
Oh Yes.. this was my biggest issue, i didn't realize that result tuple had one tuple inside of it, stupid me!
Basically at this point if you print results output is:
>>> print results
(('row1col1', 'row1col2'), ('row2col1', 'row2col2'))
You can simply loop trough results with for each or get individual row by giving and index, row1 is naturally index number of 0 and row2 is index number of 1
>>> row1 = results[1]
>>> print row1
('row2col1', 'row2col2')
And same applies to column..
>>> col1 = row1[1]
>>> print col1
row2col2
Closing connection
conn.close()