我创建了一个sqlite3 python数据库并保存了一些记录;打印所有记录有效,但是当尝试查找特定记录时,尽管该记录存在于表中,但输出列表始终为空,所以我尝试使用 ?在 WHERE sqlite 部分中,而不是放置变量名称:name 和 appelido。 数据从 Tkinter 表单的输入中获取并存储到数据库中,因此变量名称为:nombre 和 apellido。这些变量被保存到后缀为main的全局变量中,并在程序的其他模块中声明。 VarChar 是他们的类型。谢谢。 错误信息:当前语句使用 2,并且提供了 0 个。
def check_record_exists(nombre, apellido):
name_main = nombre
lastname_main = apellido
con_pd = db_connect()
con_pd.row_factory = sqlite3.Row
cursor_pd = con_pd.cursor()
query= '''SELECT FIRST_NAME, LAST_NAME,
DRIVER_LICENSE FROM DONORS
WHERE FIRST_NAME= ? AND LAST_NAME= ?
'''
cursor_pd.execute(query)
resultados_1:list(sqlite3.Row) =cursor_pd.fetchall()
check_resultados_empty = len(resultados_1)
if check_resultados_empty == 0:
print("No record found")
else:
for row in resultados_1:
print("Record:",row[0],row[1])
con_pd.commit()
cursor_pd.close()
con_pd.close()
您当前在 SQL 查询中使用字符串文字“nombre”和“apellido”,但您打算使用变量 nombre 和 apellido。
import sqlite3
def check_record_exists(nombre, apellido):
con_pd = db_connect()
con_pd.row_factory = sqlite3.Row
cursor_pd = con_pd.cursor()
query = '''SELECT FIRST_NAME, LAST_NAME, DRIVER_LICENSE FROM DONORS
WHERE FIRST_NAME = ? AND LAST_NAME = ?'''
cursor_pd.execute(query, (nombre, apellido))
resultados_1 = cursor_pd.fetchall()
check_resultados_empty = len(resultados_1)
if check_resultados_empty == 0:
print("No record found")
else:
for row in resultados_1:
print("Record:", row[0], row[1])
con_pd.commit()
cursor_pd.close()
con_pd.close()