簡體   English   中英

在Python中,如何定義將函數參數插入數據庫表的函數?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM