python - 如何使用具有组合框值的查询?
问题描述
我有一个带有值的组合框。和一个mysql查询。但我不知道如何在我的查询中应用组合框的值。
#COMBO TYPE
def combo_input_type():
conn = connect_db()
cursor = conn.cursor()
cursor.execute("SELECT t1.type FROM maker_types t1 INNER JOIN makers t2 ON t1.maker_id = t2.id WHERE maker_name = 'test 1'")
#query = "SELECT t1.type FROM maker_types t1 INNER JOIN makers t2 ON t1.maker_id = t2.id WHERE maker_name = (%s)"
#cursor.execute (query,combo_maker)
result=cursor.fetchall()
return result
#COMBO TYPE
我想改变test 1
我的组合值。谢谢。
解决方案
#COMBO TYPE
def combo_input_type():
combo_value= combobox.get() #value from your combo
conn = connect_db()
cursor = conn.cursor()
cursor.execute("SELECT t1.type FROM maker_types t1 INNER JOIN makers t2 ON t1.maker_id = t2.id WHERE maker_name = '%s'", [combo_value])
#query = "SELECT t1.type FROM maker_types t1 INNER JOIN makers t2 ON t1.maker_id = t2.id WHERE maker_name = (%s)"
#cursor.execute (query,combo_maker)
result=cursor.fetchall()
return result
#COMBO TYPE
获取 Combo 的当前值:
使用 get() 方法获取元素本身。
combo_value= combobox.get()
参数化查询:
我们正在为这些值传递一个参数 (%s)。您必须先提供值来代替占位符 (%s),然后才能使用 Prepared Statement 执行此查询。这里我们在占位符的位置提供 python 变量。
cursor.execute("SELECT t1.type FROM maker_types t1 INNER JOIN makers t2 ON t1.maker_id = t2.id WHERE maker_name = '%s'", [combo_value])