![](/img/trans.png)
[英]Python: define arguments of a function which include the arguments of the other function
[英]In Python, how to define a function which inserts the arguments of the function to a table in database?
我想定義一個函數(名為“ kayitEkle”),該函數將函數的參數插入數據庫中的表(名為“ biTablo”):
import sqlite3
connect = sqlite3.connect("obs.db")
cursor = connect.cursor()
def tabloOlustur():
cursor.execute("CREATE TABLE IF NOT EXISTS biTablo(ad TEXT, soyad TEXT, numara TEXT, puan REAL)")
connect.commit()
tabloOlustur()
def kayitEkle(ad, soyad, numara, puan):
cursor.execute("INSERT INTO biTablo(ad, soyad, numara, puan) VALUES(? ? ? ?)",(ad,soyad,numara,puan))
connect.commit()
kayitEkle('ahmet', 'yılmaz', '08067', 50)
但我收到此消息:
Traceback (most recent call last):
File "C:/Users/pc/PycharmProjects/ikinciBahar/ogrenmeDatabase.py", line 234, in <module>
kayitEkle('ahmet', 'yılmaz', '08067', 50)
File "C:/Users/pc/PycharmProjects/ikinciBahar/ogrenmeDatabase.py", line 231, in kayitEkle
cursor.execute("INSERT INTO biTablo(ad, soyad, numara, puan) VALUES(? ? ? ?)",(ad,soyad,numara,puan))
sqlite3.OperationalError: near "?": syntax error
怎么了? 我該怎么辦?
在您的cursor.execute
使用VALUES(%s, %s, %s, %s)
您需要正確組成字符串。 假設廣告,soyad,numara是字符串,而puan是數字:
cursor.execute(INSERT INTO biTablo VALUES(\\“%s \\”,\\“%s \\”,\\“%s \\”,%f);“%(ad,soyad,numara,puan))
您可能應該使用python .format
並從
cursor.execute("INSERT INTO biTablo(ad, soyad, numara, puan) VALUES(? ? ? ?)",(ad,soyad,numara,puan))
至
cursor.execute("INSERT INTO biTablo(ad, soyad, numara, puan) VALUES({},{},{},{})".format(ad,soyad,numara,puan))
如果我沒有記錯,這應該可以:
cursor.execute("INSERT INTO biTablo(ad, soyad, numara, puan) VALUES(%s, %s, %s, %s)", (ad,soyad,numara,puan))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.