我有以下代码,并抛出TypeError:execute()接受2到3个位置参数,但给出了7个.我不确定是否正确,但是这里是:
result_time = cur.execute("SELECT appointment_id FROM appointments WHERE appointment_time =%s", [appointment_time], "AND appointment_date =%s", [appointment_date], "AND doctor_id =%s", [actual_doctor_id.get('doctor_id')])
因此,当满足所有要求时,我想要一个特定的约会ID.
解决方法:
cursor.execute接受sql和一个参数元组-您单次给这些参数-因此您“塞满了”它并得到
TypeError: execute() takes from 2 to 3 positional arguments but 7 were given
更改您的代码包含1个sql语句和一个带params的元组:
result_time = cur.execute(
"SELECT appointment_id FROM appointments WHERE appointment_time = %s AND appointment_date = %s AND doctor_id = %s",
( appointment_time, appointment_date, actual_doctor_id.get('doctor_id')) )
它会工作.
cursor.execute( slq, ( param1, param2, ... ) )
# this is all a tuple - hence the 2nd allowed param to execute.
标签:select,where,python,mysql
来源: https://codeday.me/bug/20191211/2105416.html