如何使用带有组合框值的查询?

时间:2019-05-02 14:00:24

标签: python mysql tkinter combobox

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

1 个答案:

答案 0 :(得分:0)

#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

获取组合的当前值:

使用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])