2016-07-24 17 views
-2

我想同时在一个函数中有两个select查询。如何在一个函数中有2个select查询?

在shop.html:

{% for each in result %} 
    {{ each }}<br> 
{% endfor %} 


{% for each in result2 %} 
    {{ each }}<br> 
{% endfor %} 

在app.py:

@app.route('/shop/<data>') 
def shop(data): 
    db = MySQLdb.connect("localhost","myusername","mypassword","mydbname") 

    cursor = db.cursor() 
    cursor2 = db.cursor() 


    query_string = "SELECT * from users" 
    query_string2 = "SELECT * from people" 


    cursor.execute(query_string) 
    cursor2.execute(query_string2) 


    result = cursor.fetchall() 
    result2 = cursor.fetchall() 

    db.close() 


    return render_template('shop.html', result=result, result2=result2) 

但它不工作。它只是获取并打印第一个选择查询。 我该如何解决它?

+0

您的代码工作得很好;你确定*第二个选择查询返回任何数据吗?换句话说,你是否尝试过执行*只是*第二个查询,或试图查看当你将它们交换时发生了什么? –

+0

是的,每个查询都可以正常工作,但是当它们都在一个函数中收集时,则不会。 – niloofar

+1

是的,你有一个错字。第二次调用应该是'result2 = cursor2.fetchall()'。 –

回答

1

您试图从游标两次一个获取:

result = cursor.fetchall() 
result2 = cursor.fetchall() 

请注意,您在称为cursor.fetchall()这两种情况下。您希望第二个结果来自第二个光标:

result = cursor.fetchall() 
result2 = cursor2.fetchall() 
+0

是的,只是有点小错误。 – niloofar

相关问题