12 มกราคม 2559

Published มกราคม 12, 2559 by with 0 comment

เชื่อมต่อฐานข้อมูล MySQL ด้วยภาษาไพทอน

สวัสดีผู้อ่านทุกท่านครับ บทความนี้ผมจะพาผู้อ่าน ไปเชื่อมต่อฐานข้อมูล MySQL ด้วยภาษาไพทอนกันครับ


ในการเชื่อมต่อฐานข้อมูล MySQL ด้วยภาษาไพทอน เรามักจะนึกถึงโมดูล mysql-connector-python แต่โมดูลดังกล่าวไม่ได้ถูกเขียนด้วยภาษาไพทอนทั้งหมด มีการใช้งาน MySQL C client libraries ด้วย ทำให้มีปัญหาเวลาติดตั้ง (และความเข้ากันได้) ทำให้เกิดโมดูลใหม่ขึ้นมาชื่อ mysql-connector

โมดูล mysql-connector เป็น MySQL driver ที่เขียนในภาษาไพทอนทั้งหมด (ไม่มีปัญหาเรื่องความเข้ากันได้) พร้อมรองรับ DB API v2.0 specification (PEP-249) พัฒนาโดย Oracle
ใช้ License: GNU GPLv2
รองรับทั้ง Python 2 และ Python 3

สามารถติดตั้งได้โดยใช้คำสั่ง pip :
pip install mysql-connector-python

เอกสารการใช้งาน


ในการเรียกใช้งานโมดูลนี้ต้อง

[python]import mysql.connector[/python]

เข้ามาทุกครั้ง

การเชื่อมต่อกับฐานข้อมูล

import mysql.connector

cnx = mysql.connector.connect(user='scott', password='tiger',host='127.0.0.1',database='employees')
cnx.close()

หากต้องการจัดการข้อผิดพลาดสามารถใช้ try except เข้ามาช่วยได้ดังนี้
แต่หากไม่ต้องการกรอกข้อมูลลงใน argument สามารถใช้ข้อมูลชนิด dictionary ช่วยในการเชื่อมต่อกับ

ฐานข้อมูลได้ดังนี้
import mysql.connector

config = {
'user': 'scott',
'password': 'tiger',
'host': '127.0.0.1',
'database': 'employees',
'raise_on_warnings': True,
}

cnx = mysql.connector.connect(**config)

cnx.close()

การใช้คำสั่ง SQL กับฐานข้อมูล MySQL ในภาษาไพทอน


เราสามารถใช้คำสั่ง SQL เพื่อสร้างฐานข้อมูล สร้างตาราง เพิ่มข้อมูลลงตาราง ปรับเปลี่ยนข้อมูล และลบข้อมูลได้ โดยใช้คำสั่ง
cursor.execute(โค้ด SQl)

เมื่อใช้งานคำสั่งเสร็จ ต้องใช้คำสั่ง

commit()

เพื่อบันทึกข้อมูลเสมอ

ตัวอย่างเช่น
ใช้คำสั่งสร้างตาราง
import mysql.connector
from mysql.connector import errorcode

con = mysql.connector.connect(user='scott', password='tiger',host='127.0.0.1',database='employees')cursor = con.cursor()
sql = '''CREATE TABLE foo (
bar VARCHAR(50) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
'''
cursor.execute(sql)


con.commit()
con.close()

การเพิ่มข้อมูล
import mysql.connector
con = mysql.connector.connect(user='scott', password='tiger',
host='127.0.0.1',
database='employees')
add_db = "insert into foo(bar) values('Tontan')"
cursor = con.cursor()
cursor.execute(add_db)
con.commit()
con.close()

การดึงข้อมูลมาใช้งาน


สามารถใช้คำสั่ง
cursor.fetchall()

หลังคำสั่ง
cursor.execute(โค้ด SQl)
โดยโค้ด SQl ต้องเป็นคำสั่ง query ข้อมูลตามหลักภาษา SQL
ตัวอย่าง
import mysql.connector

con = mysql.connector.connect(user='scott', password='tiger',host='127.0.0.1',database='employees')
cursor = con.cursor()
sql = ("select bar from foo")
cursor.execute(sql)
data = cursor.fetchall() # ได้ผลลัพธ์ออกมาในรูป list
print(data[0])

ผลลัพธ์
Tontan

เอกสารการใช้งาน http://dev.mysql.com/doc/connector-python/en/
ติดตามบทความต่อไปนนะครับ
ขอบคุณครับ

0 ความคิดเห็น:

แสดงความคิดเห็น

แสดงความคิดเห็นได้ครับ :)