如何解决用户输入和数据库:MySQLdb._exceptions.ProgrammingError
我的代码允许我显示与用户通过数据库搜索提供的数据相对应的结果。但是我有这个错误,但我没有解决这个错误。MySQLdb._exceptions.ProgrammingError
MySQLdb._exceptions.ProgrammingError: execute() first
这是不同的部分 #home.html
<p class="article-content">
<div class="form_form">
<form class="form" method="post" action="/search">
<label for="user_input"></label>
<input id="user_input" name="user_input" type="text">
<input type = "submit" value = "send">
</form>
</div>
</p>
#search_results.html
{% extends "layout.html" %}
{% block content %}
<article class="media content-section">
<div class="media-body">
<div class="article-metadata">
<h5><a class="mr-2" href="#">results for{{ user_input }}</a></h5>
</div>
<p class="article-content"><p>Family Name: </p>{{ results.name }}</p>
<p class="article-content"><p>Family Description: </p>{{ results.description }}</p>
<p class="article-content"><p>Address: {{ results.address }}</p>
<p class="article-content"><p>Phone Number: {{ results.phone }}</p>
</div>
</article>
<form>
<input type="button" value="New Search" onclick="history.go(-1)">
</form>
{% endblock content %}
#routes.py
@app.route('/search',methods=['GET','POST'])
def search():
cur = db.connection.cursor()
if request.method == "POST":
user_input = request.form["user_input"]
cur.execute = ("SELECT f.family_name,f.family_description,f.family_address,f.family_phone FROM Shop f WHERE f.family_address LIKE %s ORDER BY family_name",( "%" + user_input + "%",))
results = cur.fetchall()
return render_template('search_results.html',user_input=user_input,results=results)
else:
return redirect(url_for('home'))
解决方法
此行:
cur.execute = ("SELECT f.family_name,f.family_description,f.family_address,f.family_phone FROM Shop f WHERE f.family_address LIKE %s ORDER BY family_name",( "%" + user_input + "%",))
应为:
cur.execute("SELECT f.family_name,))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。