- MySQLdb การติดตั้งที่ MySQLdb ต้องติดตั้ง MySQL บนเครื่องที่พัฒนาด้วยเพื่อให้เรียกใช้ไลบราลีของ MySQL หรือต้องเรียกใช้ C API เพื่อเชื่อมต่อ
- Connector/Python เป็นโมดูลที่ทาง MySQL ทำออกมาเอง ไม่จำเป็นต้องติดตั้ง MySQL ในเครื่องที่พัฒนา เพราะเขียนด้วย Python ล้วน ๆ
การเรียกใช้งานจะคล้ายกันแต่จะต่างกันนิดหน่อย ไม่ว่าจะใช้วิธีใดเชื่อมต่อสิ่งหนึ่งที่จะต้องพิจารณาคือ โปรแกรมที่พัฒนาขึ้นมานั้นจะนำไปใช้ที่ไหน ถ้าเป็นโปรแกรมที่เราติดตั้งในเครื่องที่เราควบคุมได้ทุกอย่างหรือบนเครื่องเซิร์ฟเวอร์แบบ VPS หรือ Decdicated Server จะใช้ตัวไหนก็ได้เพราะสามารถควบคุมสิทธิ์ต่าง ๆ ได้เต็มที่ แต่ถ้าจะนำไปใช้บนเครื่องเช่าแบบแชร์ (Shared Hosting) ก็ต้องอ่านรายละเอียดกันก่อนนะว่า มีโมดูลไหนเกี่ยวกับ Python ให้เราใช้ได้บ้างไม่งั้นมัวทำไป กลายเป็นพอจะเอาขึ้นกลับใช้ไม่ได้เนื่องจากติดตั้งบางโมดูลที่ต้องการไม่ได้จะหาว่าไม่เตือน โดยเฉพาะโฮสในไทยจะไม่ค่อยจะมี Python แต่ถ้าเป็นต่างประเทศมักจะมี Python มาให้ใช้
ตัวอย่างการเชื่อมต่อฐานข้อมูล MySQL ด้วย MySQLdb
#สำหรับ MySQLdb import MySQLdb as mdb import sys try: con = mdb.connect('yourhost', 'yourusername', 'yourpassword', 'yourdb'); cur = con.cursor() cur.execute("SELECT VERSION()") ver = cur.fetchone() print "Database version : %s " % ver except mdb.Error, e: print "Error %d: %s" % (e.args[0],e.args[1]) sys.exit(1) finally: if con: con.close()ตัวอย่างการเชื่อมต่อฐานข้อมูลด้วย Connector/Python
#สำหรับ Connector/Python import mysql.connector from mysql.connector import errorcode try: con = mysql.connector.connect(host='yourhost', user='youruser', password='yourpassword', database='yourdb') cur = con.cursor() cur.execute("SELECT VERSION()") ver = cur.fetchone() print "Database version : %s " % ver except mysql.connector.Error as err: if err.errno == errorcode.ER_ACCESS_DENIED_ERROR: print("Something is wrong with your user name or password") elif err.errno == errorcode.ER_BAD_DB_ERROR: print("Database does not exists") else: print(err) else: con.close()จะเห็นว่าการใช้งานก็จะคล้ายกัน ถ้าให้เลือกใช้เองตอนนี้คงต้องเลือก MySQLdb เพราะว่า shared host ที่ใช้อยู่ มีโมดูลนี้ติดตั้งให้แล้ว ถึงตอนพัฒนาจะติดตั้งยากหน่อยก็เถอะ