如何使用SQL在Python中使用输入



我在Windows Access中有此表:

我表的标题是数据

名称 - 性别 - 数字

JO-男性-1

ali-男性-2

mo-男性-3

我想使用一个询问名称的输入,我希望我的程序给出该人的详细信息。

我试图这样做:

import pyodbc
conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};' +
        r'DBQ=C:UsersGebruikerPycharmProjectsTennisDatabase.accdb;')
gegevens = conn.cursor()
question = input("Give a name: ")
SelectString = 'SELECT NAME FROM DATA WHERE DATA.NAME = ' + question + ';'
gegevens.execute(SelectString)
gegevensList = gegevens.fetchall()

print(len(gegevensList), "Spelergegevens : ")
for gegevens in gegevensList:
    print (gegevens)
print('')

我得到此错误:

追溯(最近的最新通话): 文件" C:/users/gebruiker/pycharmprojects/opdracht 1.py",第9行,in gegevens.execute(selectstring)pyodbc.error :('07002','[07002] [Microsoft] [ODBC Microsoft Access驱动程序]太少参数。

我不知道我在做什么错以及如何修复它。谁能帮我如何做?

打印出SelectString,您会看到它看起来像

SELECT NAME FROM DATA WHERE DATA.NAME = Gord;

您的问题是Gord不被认为是字符串文字。它被解释为列名。

您需要使用参数化查询,例如此

sql = "SELECT [NAME] FROM [DATA] WHERE DATA.NAME = ?"
crsr.execute(sql, question)

相关内容

  • 没有找到相关文章

最新更新