การส่งคำสั่ง SQL ไปยังฐานข้อมูลใน Python
หลังจากเชื่อมต่อกับฐานข้อมูลได้แล้ว คุณสามารถส่งคำสั่งไปยังฐานข้อมูลได้ ซึ่งทำได้โดยใช้ตัวแปร query ที่เขียนคำสั่ง SQL เพื่อดึงข้อมูลทั้งหมดจากตาราง users ตัวแปรนี้ควรเขียนไว้ภายในบล็อกที่มีตัวแปร connection:
try:
with connect(
host='localhost',
user='root',
password='',
database='test',
) as connection:
query = "SELECT * FROM users"
except Error as e:
print(e)
ต่อไป เราเขียนโครงสร้าง with อีกอันหนึ่งสำหรับทำงานกับวัตถุ MySQLConnection ซึ่งเก็บไว้ในตัวแปร connection ต้องนำเมธอดพิเศษมาใช้กับวัตถุนี้ตามลำดับ เมธอดแรกคือเมธอด cursor ซึ่งสร้างวัตถุ CMySQLCursor จากวัตถุ MySQLConnection จากนั้นนำเมธอด execute มาใช้กับวัตถุ CMySQLCursor ซึ่งรับประกันการดำเนินการคำสั่ง SQL ที่ส่งผ่านไปยังพารามิเตอร์:
try:
with connect(
...
) as connection:
query = "SELECT * FROM users"
with connection.cursor() as cursor:
cursor.execute(query)
ต่อไปต้องดึงข้อมูลทั้งหมดออกมาโดยใช้เมธอด fetchall และบันทึกลงในตัวแปร result และเพื่อแสดงข้อมูลที่ได้ ต้องส่งข้อมูลผ่านลูป for:
try:
with connect(
...
) as connection:
query = "SELECT * FROM users"
with connection.cursor() as cursor:
cursor.execute(query)
result = cursor.fetchall()
for row in result:
print(row)
โค้ดเต็มจะมีหน้าตาแบบนี้:
try:
with connect(
host='localhost',
user='root',
password='',
database='test',
) as connection:
query = "SELECT * FROM users"
with connection.cursor() as cursor:
print(cursor)
cursor.execute(query)
result = cursor.fetchall()
for row in result:
print(row)
except Error as e:
print(e)
หลังจากดำเนินการโค้ด บันทึกทั้งหมดจะแสดงในคอนโซลในรูปแบบทูเพิล:
(1, 'user1', 23, 400)
(2, 'user2', 25, 500)
(3, 'user3', 23, 500)
(4, 'user4', 30, 900)
(5, 'user5', 27, 500)
(6, 'user6', 28, 900)
แสดงข้อมูลทั้งหมดจากตาราง users