- 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 ที่ใช้อยู่ มีโมดูลนี้ติดตั้งให้แล้ว ถึงตอนพัฒนาจะติดตั้งยากหน่อยก็เถอะ