Page 124 - python
P. 124
98
่
ู
9.4 การเชอมตอฐานขอมล MySQL เขากับ Python
ื
ั
การเชื่อมตอฐานขอมูล MySQL ตองระบุ หมายเลข IP ของ MySQL Server, ชื่อผูใช, รหสผาน,
ชื่อฐานขอมูล โดยเขียนโคดดังนี้
ตัวอยางที่ 9.1 การเชื่อมตอฐานขอมูล
import mysql.connector as MySQL
config = {'user': "i_user", 'password': "123456", 'host': "202.28.34.204",
'database': "i_1202201", 'raise_on_warnings': True}
cnx = MySQL.connect(**config)
cnx.close()
ตัวอยางที่ 9.1 คําสั่ง import mysql.connector as MySQL เปนการขอใชโมดูล mysql.
connector และตั้งชื่อวา MySQL ตัวแปร config มีชนิดดิกชันนารี เก็บคียและคาขอมูลของ user,
password , host , database และ raise_on_warings ตัวแปร cnx เปนอ็อบเจ็คการเชื่อมตอโดยสงตัว
แปร config เขาไปเปนอารกิวเมนตของฟงกชั่น connect() เมื่อเครื่องหมาย ** คือ การปอนอารกิวเมนต
่
่
ํ
ื
ั
่
่
ื
ใหฟงกชนดวยตัวแปรดิกชันนารี หลังจากเชอมตอสาเร็จจะทําการปดการเชอมตอดวยคาสง cnx.close()
ํ
ั
9.5 การเพิ่มขอมูลดวยคําสั่ง Insert
ตัวอยางที่ 9.2 การเพิ่มขอมูลในตาราง 41410606_friend
import mysql.connector as MySQL
config = {'user': "i_user", 'password': "123456", 'host': "202.28.34.204",
'database': "i_1202201", 'raise_on_warnings': True}
cnx = MySQL.connect(**config)
cursor = cnx.cursor()
Ds = {'firstname': 'จักรกฤษณ',
'lastname': 'แสงแกว',
'email': "chakkrit@msu.ac.th" }
placeholders = ', '.join(['%s'] * len(Ds))
columns = ', '.join("`" + str(x).replace('/', '_') + "`" for x in Ds.keys())
values = ', '.join("'" + str(x).replace('/', '_') + "'" for x in Ds.values())
sql = "INSERT INTO %s ( %s ) VALUES ( %s );" % ('41410606_friend', columns, values)
cursor.execute(sql)
cnx.commit()
cnx.close()
ี่
ตัวอยางท 9.2 การเพิ่มขอมูลจะเตรียมขอมูลในตัวแปร Ds เปนชนิดดิกชันนารี และจะมีคีย
ึ้
ประกอบดวย firstname, lastname และ email ซึ่งตรงกบคอลัมนของตารางที่สรางขน ตัวแปร
ั
placeholders จะทําหนาที่เชื่อมคียและคาขอมูลและสังเคราะหคําสั่ง SQL จากตัวแปรดิกชันนารี