【发布时间】:2021-07-14 23:16:11
【问题描述】:
try:
conn = sql.connect(file)
cursor = conn.cursor()
print("Connected to Database.")
except:
print ("Connection failed.")
try:
sql_query = "SELECT * FROM strains WHERE Shelf = (?) and 'Strain Type' = (?)"
args = (shelfplacement, straintype,)
cursor.execute(sql_query,args)
simstrains = cursor.fetchall()
print("Similar Strains:")
for row in simstrains:
print("Strain Type: ", row[0])
print("Percentage Mix: ", row[1])
print("Strain: ", row[3])
print("Shelf: ", row[4])
print("THC Percent: ", row[9])
print("\n")
cursor.close()
except sql.Error as error:
print(error)
finally:
if conn:
conn.close()
print('The SQL connection is closed')
getstraininfo()
此代码未使用填充列表填充 simstrains 变量。我的查询语句不正确吗?我将不胜感激任何形式的帮助!
【问题讨论】:
-
“应变类型”周围有单引号,这使它成为一个字符串。当您将其他任何内容与该字符串进行比较时,结果条件为 False,从而返回一个空结果集。
-
@mechanical_meat 问题被标记为
sqlite。为什么你不知道他们使用的是什么数据库? -
@Barmar:啊,我的错误没有看到标签。谢谢。
-
这与您之前提出的问题基本相同。那我告诉你用反引号,你为什么不试试呢? stackoverflow.com/questions/68385240/…
-
我在代码上使用了它们,它消除了语法错误(谢谢)。我现在的错误是它没有显示结果。我使用 fetchall 创建了 simstrains 列表,但列表为空,因此 for 循环不打印任何内容。
标签: python sql database sqlite