Python-如何比较访问DB和变量之间的字符串


from tkinter import *
import tkinter as tk
import pyodbc
root1 = tk.Tk()
label1 = tk.Label(root1, text='product A')
input1 = StringVar()
entry1 = tk.Entry(root1,textvariable=input1)
label1.pack(side = tk.TOP)
entry1.pack()

buttonstr = tk.StringVar()
db = r"C:UsersGouthamDocumentskeshavtestdb.accdb"


def odbc():
 '''
 connects with odbc
 '''        
 constr = 'Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=' + db
 conn = pyodbc.connect(constr, autocommit=True)
 cur = conn.cursor()
 check=input1.get()
 strsql = "select * from student where SName=%s"%(check)
 cur.execute(strsql)
 results = cur.fetchall()

 print (results,check)
 conn.close()

 buttonA = tk.Button(text = "hello", command = odbc)
 buttonA.pack()

我需要此代码来获取输入,将其存储在变量-'check'中,然后使用SQL查询将其与数据库中的值进行比较。然后显示数据库中的匹配值。

SQL查询的实现似乎存在问题。SQL查询无法正常工作并导致错误。

请帮助。

谢谢。

您需要将参数引用到where子句:

strsql = "select * from student where SName='%s'" % (check,)

但是要谨慎地构建这样的子句(使用字符串格式),您会承担SQL注入的风险。您应该通过参数:

strsql = "select * from student where SName=?"
cur.execute(strsql, (check,))

相关内容

  • 没有找到相关文章

最新更新