在Python中,如何定义一个将函数的参数插入到数据库表中的函数?

2024-09-28 20:55:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我想定义一个函数(名为“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

怎么了?我该怎么办?你知道吗


Tags: 函数textexecutedefconnectsqlite3cursorad
3条回答

您可能应该使用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))

您需要正确地组合字符串。Asumming ad、soyad、numara是字符串,puan是数字:

cursor.execute(INSERT INTO biTablo VALUES(\"%s\", \"%s\", \"%s\", %f);" % (ad,soyad,numara,puan))

cursor.execute中使用VALUES(%s, %s, %s, %s)

相关问题 更多 >