cur=connection.cursor()
def fillDoctors(key_bodyloc,proportion):
bodyloc_specialty_query="select distinct Speciality from body_speciality where body_location in (%s) "
#cur.execute(bodyloc_specialty_query)
data1=([key_bodyloc])
#print(bodyloc_specialty_query,data)
cur.execute(bodyloc_specialty_query,data1)
results=cur.fetchall()
specialities=[x[0] for x in results]
condition=""
for speciality in specialities:
print(str(speciality))
condition=condition+"'%"+speciality+"%'"+" or Speciality like "
#print(speciality)
#print(condition)
specialty_doctors_query="select DoctorName,Speciality,ClinicName from Doctors where Speciality like %s limit %s"
data2=([condition,proportion])
print(specialty_doctors_query,data2)
cur.execute(specialty_doctors_query,data2)
final=cur.fetchall()
print(final)
行final=cur.fetchall()
在每次迭代中返回一个空元组。我已经验证了表Doctors不是空的,并且当'条件'是硬编码时,代码工作正常。该代码应该打印每个专业的医生详细信息。谁能告诉我为什么会发生这种情况?Django传递参数时MySQL查询输出错误
有字面上'%'和'format'当它没有区别来自SQL注入的安全性:两者都没有提供。 –
好的。编辑。我认为我需要对此进行研究 –
line results = cur.fetchall()可以正常工作并返回预期结果。问题在于'specialty_doctors_query'是我所知道的,但我无法理解。 –