Connect mysql with Python - mrolarik/simple-iot GitHub Wiki

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

  • การเขียนภาษา Python เพื่อเชื่อมต่อ (Connect) ไปยัง mysql สามารถทำได้โดยติดตั้ง mysql driver โดยพิมพ์คำสั่งดังต่อไปนี้
$ sudo python -m pip install mysql-connector

หากไม่ได้ติดตั้ง mysql-connecter เมื่อเรียกใช้จะเกิดข้อผิดพลาดดังนี้

>>> import mysql.connector
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named mysql.connector
  • จากนั้นให้กำหนดชื่อการเชื่อมต่อ
mydb = mysql.connector
  • กำหนด host, user, password และ database ที่จะเชื่อมต่อ
mydb = mysql.connector.connect(
  host="localhost",
  user="myusername",
  passwd="mypassword",
  database="iot_device"
)

print(mydb)

ผลลัพธ์ที่ได้หากการเชื่อมต่อสำเร็จ

<mysql.connector.connection.MySQLConnection object ar 0x016645F0> 
  • จากตัวอย่างข้างต้น กำหนดให้เชื่อมต่อกับ database ที่ชื่อ iot_device
  • หากต้องการให้แสดงรายชื่อของ table ที่อยู่ในฐานข้อมูล iot_device สามารถทำได้โดย
mycursor = mydb.cursor()
mycursor.execute("SHOW TABLES")

# show table name
for x in mycursor:
    print(x)

จากตัวอย่างโปรแกรมจะแสดงชื่อของ table ที่อยู่ใน database ดังนี้

(u'iot',)

นั่นแสดงว่าในฐานข้อมูล iot_device ประกอบด้วย 1 ตารางคือ iot

การเพิ่มข้อมูลลงฐานข้อมูล mysql

  • การเพิ่มข้อมูลลงไปยังตาราง iot สามารถทำได้ดังนี้
sql = 'INSERT INTO iot(iot_name, iot_value1, iot_value2) VALUES (%s, %s, %s)'
val = ('TEMP', '20', '25')
mycursor.execute(sql, val)

mydb.commit()
print(mycursor.rowcount, "record inserted.")

ผลลัพธ์ที่ได้จากการทำงานของโปรแกรม แสดงดังต่อไปนี้

(1, 'record inserted.')

ตัวอย่างโปรแกรม

#----------connect_mysql.py------------

mydb = mysql.connector.connect(
  host="localhost",
  user="myusername",
  passwd="mypassword",
  database="iot_device"
)
mycursor = mydb.cursor()

sql = 'INSERT INTO iot(iot_name, iot_value1, iot_value2) VALUES (%s, %s, %s)'
val = ('TEMP', '20', '25')
mycursor.execute(sql, val)

mydb.commit()
print(mycursor.rowcount, "record inserted.")
  • จากนั้นทำการรันโปรแกรม Python ด้วยคำสั่ง
$ python connect_mysql.py

ผลลัพธ์ที่ได้ (1, 'record inserted.')

  • จากนั้นสามารถเปิดเข้าไปยัง phpmyadmin เพื่อตรวจสอบข้อมูลที่เพิ่มเข้าไป add data
⚠️ **GitHub.com Fallback** ⚠️