与python的Mysql连接

问题描述 投票:0回答:2

此代码运行无错误,但没有记录添加到数据库中

mydb=sql.connect(host="localhost",user="root",passwd="")
cmd=mydb.cursor()
cmd.execute("create database if not exists library")
cmd.execute("use library")
cmd.execute("create table if not exists class_12 (roll_no int(2) not null,name varchar(30) not null,book_issued varchar(50),book_no int(6) not null)")
c=input("do u want to edd entries in the book record? y/n : ")
while c=="y":
    print("please supply the following details ")
    r=int(input("roll number of the student"))
    n=str(input("enter the name of the student"))
    bn=str(input("enter the book name"))
    BN=int(input("Enter BOOK number : "))
    inp=("insert into class_12(roll_no,name,book_issued,book_no) values(%s,%s,%s,%s)")
    val=(r,n,bn,BN)
    cmd.execute(inp,val)
    cmd.execute("commit")
    c=input("do u want to edd entries in the book record? y/n : ")```
mysql python-3.x python-idle mysql-connect
2个回答
0
投票

您没有将更改提交到数据库。退出之前,将提交和关闭调用添加到脚本中。

mydb=sql.connect(host="localhost",user="root",passwd="")
cmd=mydb.cursor()
cmd.execute("create database if not exists library")
cmd.execute("use library")
cmd.execute("create table if not exists class_12 (roll_no int(2) not null,name varchar(30) not null,book_issued varchar(50),book_no int(6) not null)")
c=input("do u want to edd entries in the book record? y/n : ")
while c=="y":
    print("please supply the following details ")
    r=int(input("roll number of the student"))
    n=str(input("enter the name of the student"))
    bn=str(input("enter the book name"))
    BN=int(input("Enter BOOK number : "))
    inp=("insert into class_12(roll_no,name,book_issued,book_no) values(%s,%s,%s,%s)")
    val=(r,n,bn,BN)
    cmd.execute(inp,val)
    c=input("do u want to edd entries in the book record? y/n : ")
cmd.commit()
cmd.close()

0
投票

您需要在所有插入语句之后执行cmd.commit()。另请参见https://dev.mysql.com/doc/connector-python/en/connector-python-example-cursor-transaction.html

© www.soinside.com 2019 - 2024. All rights reserved.