با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره کامل آموزش پایتون ، را دنبال می کنند. در قسمت قبلی به ساخت جدول در MySQL در پایتون پرداختیم ، در این جلسه قصد داریم به آموزش درج اطلاعات در جدول MySQL در پایتون Python یا دستور INSERT در mysql در پایتون بپردازیم.
برای درج اطلاعات یا رکورد در جدول از دستور “INSERT INTO” استفاده می کنیم.
در کد زیر یک رکورد به جدول customers اضافه کرده ایم:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | import mysql.connector mydb = mysql.connector.connect( host="localhost", user="yourusername", passwd="yourpassword", 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 برای درج چند ردیف یا رکورد در جدول استفاده می شود.
دومین پارامتر تابع ()executemany لیستی از tuple هایی است که حاوی اطلاعات دلخواه شما برای درج در جدول می باشد.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | import mysql.connector mydb = mysql.connector.connect( host="localhost", user="yourusername", passwd="yourpassword", 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 درخواست کنید.
اگر شما چندین رکورد درج کرده باشید، id آخرین رکورد برگشت داده می شود.
در مثال زیر یک ردیف ایجاد کرده ایم و id آن را بدست می آوریم:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | import mysql.connector mydb = mysql.connector.connect( host="localhost", user="yourusername", passwd="yourpassword", 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) |
جلسه آموزش درج اطلاعات در جدول MySQL در پایتون Python نیز به پایان رسید.
در جلسه بعد به آموزش دستور SELECT در MySQL در پایتون خواهیم پرداخت. با ما همراه باشید.
ali
>>> mycursor.execute(“CREATE TABLE mina (name INTEGER(10))”)
>>> xv=[(1),(2)]
>>> sql = “INSERT INTO mina (name) VALUES (%d)”
>>> mycursor.executemany(sql,xv)
Traceback (most recent call last):
File “C:\Users\Kabir Rayan\AppData\Local\Programs\Python\Python37-32\lib\site-packages\mysql\connector\cursor.py”, line 425, in _process_params
res = [to_mysql(i) for i in res]
TypeError: ‘int’ object is not iterable
During handling of the above exception, another exception occurred:
Traceback(most recent call last):
File “”, line 1, in
mycursor.executemany(sql,xv)
File “C:\Users\Kabir Rayan\AppData\Local\Programs\Python\Python37-32\lib\site-packages\mysql\connector\cursor.py”, line 660, in executemany
stmt = self._batch_insert(operation, seq_params)
File “C:\Users\Kabir Rayan\AppData\Local\Programs\Python\Python37-32\lib\site-packages\mysql\connector\cursor.py”, line 601, in _batch_insert
psub = _ParamSubstitutor(self._process_params(params))
File “C:\Users\Kabir Rayan\AppData\Local\Programs\Python\Python37-32\lib\site-packages\mysql\connector\cursor.py”, line 430, in _process_params
“Failed processing format-parameters; %s” % err)
mysql.connector.errors.ProgrammingError: Failed processing format-parameters; ‘int’ object is not iterable
ali
میشه کمکم کنید حلش کنم
داده نمیگیره
پی وی لرن
سلام
احتمالا این لینک مشکلتون برطرف خواهد کرد.
رفع مشکل iterable در پایتون