首页 > 解决方案 > 如何使用具有组合框值的查询?

问题描述

我有一个带有值的组合框。和一个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我的组合值。谢谢。

标签: pythonmysqltkintercombobox

解决方案


#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])

推荐阅读