1

所以,我是一个菜鸟 MySQL 和一个基本知识 Python 的人。任何帮助都非常感谢提前。我已经搜索了与此相关的特定线程,但出现了空白。问题:我有一个表,我希望能够输入名字和姓氏,如果它们匹配任何记录,则返回行中的数据和表的名称。听起来很简单,可能是绝地武士,但是,我得到一个 TypeError:not all arguments 在字符串格式化期间转换

我的代码:

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)
4

1 回答 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,))
于 2014-06-17T19:28:05.760 回答