PyMYSQL 查询未返回预期结果
我还是个新手,刚学MySQL,也对Python有一点基础。提前谢谢大家的帮助。我找过一些相关的帖子,但没找到合适的解决办法。
问题是:
我有一个表格,想要输入一个名字和姓氏,如果这些名字和姓氏在记录中有匹配的,就返回那一行的数据,还有表格的名字。听起来很简单,可能对高手来说确实是这样,但我遇到了一个错误:TypeError: not all arguments converted during string formatting。
我的代码:
import pymysql
user_input_fname = input("Please enter client first name and press Enter button: ")
user_input_lname = input("Please enter client last name and press Enter button: ")
db = pymysql.connect(host='127.0.0.1', port=44420, user='*****', passwd='*************', db='************')
cursor = db.cursor()
cursor.execute("""SELECT Named_Insured_First_Name, Named_Insured_Last_Name FROM condo_rented_to_others WHERE Named_Insured_First_Name='user_input_fname' AND Named_Insured_Last_Name='user_input_lname' """, (user_input_fname, user_input_lname,))
# calls fetchone until None is returned (no more rows)
for row in iter(cursor.fetchone, None):
print ('condo_rented_to_others')
print(row)
1 个回答
1
你现在查询的是字面上的值 'user_input_fname' 和 'user_input_fname'。你需要用参数替换的方式,把变量的值插进去,而不是直接用这些字面值。
cursor.execute("""SELECT Named_Insured_First_Name, Named_Insured_Last_Name FROM condo_rented_to_others WHERE Named_Insured_First_Name=%s AND Named_Insured_Last_Name=%s """, (user_input_fname, user_input_lname,))