为了账号安全,请及时绑定邮箱和手机立即绑定

如何获取此代码以在 python-mysql 接口中仅请求一次记录插入

如何获取此代码以在 python-mysql 接口中仅请求一次记录插入

尚方宝剑之说 2023-03-22 10:41:05
import mysql.connector as mycfrom mysql.connector import Errordef new():        idtype=input("Type of Id proof present=")     idno=input("Identification number=")    name=input("Name of patient=")    age=input("Age=")    sex=input("Sex=")    address=input("Address=")    contactno=int(input("Contact Number="))    date=input("Date =")    doccons=input("Doctor consulted=")    reason=input("Consultation reason=")    dept=input("Department of doctor consulted=")    aller=input("Medical Allergies (if any)=")    insu=input("Availing Insurance=")    temp=input("Temperature of patient(degree celsius)=")    fees=int(input("Fees="))    if True:        db = myc.connect(host='localhost',                         database='patients',                         user='root',                         password='root')        mc = db.cursor()        query = """INSERT INTO patient ( IDTYPE,IDNO,NAME,AGE,SEX,ADDRESS,CONTACT_NO,DATE,DOCTOR_CONSULTED,CONSULTATION_REASON,DEPARTMENT,ALLERGIES,INSURANCE,TEMPERATURE,FEES)                                  VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s) """        recordTuple = (idtype,idno,name,age,sex,address,contactno,date,doccons,reason,dept,aller,insu,temp,fees)        mc.execute(query, recordTuple)        mc.execute("CREATE TABLE "+name+" (NAME VARCHAR(100),CONSULTED_DATE DATE,CONSULTATION_REASON VARCHAR(100),CONSULTED_DOCTOR VARCHAR(100),FEES VARCHAR(100))")        qu="""INSERT INTO """+name+""" (NAME ,CONSULTED_DATE ,CONSULTATION_REASON ,CONSULTED_DOCTOR ,FEES )                              VALUES(%s, %s, %s, %s, %s)"""        retu=(name,date,reason,doccons,fees)        mc.execute(qu,retu)        db.commit()        print("Record inserted successfully into Patient table")    elif myc.Error==error:        print("Failed to insert into MySQL table {}".format(error))这是我为学校项目编写的代码。这是库中的一个模块。问题是:当我这样运行模块时,它只会要求插入一条记录,但是当我在另一个程序中调用该模块时,它会要求插入两条记录。但我只想给出一个记录。任何答案将不胜感激。谢谢。
查看完整描述

1 回答

?
慕仙森

TA贡献1827条经验 获得超7个赞

当您从另一个模块加载此模块然后调用 时new(),您忘记了模块本身包含对new()作为最后一行的调用。new()因此,总共进行了两次调用。你想修改你的模块以替换最后一行:

if __name__ == '__main__':
    new()

当您使用 Python 命令运行该文件时,__name__将是“__main__”,因此new()将被调用。但是当它从另一个程序或模块导入时,上面的 if 条件将为 False 


查看完整回答
反对 回复 2023-03-22
  • 1 回答
  • 0 关注
  • 70 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信