Python MySQL Insert Into Table
وارد کردن یک رکورد
برای پر کردن یک جدول در MySQL از دستور "INSERT INTO"
استفاده کنید.
import mysql.connector
from config import username, password, host
mydb = mysql.connector.connect(
host= host,
user= username,
password= password,
database="mydatabase"
)
mycursor = mydb.cursor()
sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = ("John", "Highway 21")
mycursor.execute(sql, val)
mydb.commit()
print(mycursor.rowcount, "record inserted.")
به عبارت
mydb.commit()
توجه کنید! بدون این دستور هیچ تغییری در جدول ایجاد نمیشود و برای وارد کردن رکورد یا هر تغییر دیگری حتماً میبایست این دستور نوشته شود.
وارد کردن چندین رکورد
برای وارد کردن چندین سطر میتوانید از تابع شیء executemany()
استفاده کنید.
پارامتر دوم در این تابع شیء یک لیست از تاپلها شامل دادههایی است که میخواهید وارد جدول کنید.
import mysql.connector
from config import username, password, host
mydb = mysql.connector.connect(
host= host,
user= username,
password= password,
database="mydatabase"
)
mycursor = mydb.cursor()
sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = [
('Peter', 'Lowstreet 4'),
('Amy', 'Apple st 652'),
('Hannah', 'Mountain 21'),
('Michael', 'Valley 345'),
('Sandy', 'Ocean blvd 2'),
('Betty', 'Green Grass 1'),
('Richard', 'Sky st 331'),
('Susan', 'One way 98'),
('Vicky', 'Yellow Garden 2'),
('Ben', 'Park Lane 38'),
('William', 'Central st 954'),
('Chuck', 'Main Road 989'),
('Viola', 'Sideway 1633')
]
mycursor.executemany(sql, val)
mydb.commit()
print(mycursor.rowcount, "was inserted.")
به دست آوردن ID رکورد وارد شده
میتوانید با پرسیدن از شیء cursor آیدی رکورد وارد شده را به دستآورید.
در صورتی که چندین رکورد را وارد کنید، آیدی آخرین رکورد را برمیگرداند.
import mysql.connector
from config import username, password, host
mydb = mysql.connector.connect(
host= host,
user= username,
password= password,
database="mydatabase"
)
mycursor = mydb.cursor()
sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = ("Michelle", "Blue Village")
mycursor.execute(sql, val)
mydb.commit()
print("1 record inserted, ID:", mycursor.lastrowid)