Python如何知道记录是否成功插入

Gia*_*inh 15 python mysql mysql-connector

我正在使用Python MySQL Connector,我在数据库中插入了一条记录,并且成功了.但是在Python代码中,我怎么知道它是否被插入?我的表没有主键.

def insert(params) :
    db_connection = Model.get_db_connection()
    cursor = db_connection.cursor()
    try :
        cursor.execute("""INSERT INTO `User`(`UID`, `IP`) VALUES(%s,%s);""", (params))
        db_connection.commit()
    except :
        db_connection.rollback()
    Model.close_db(db_connection)
    return result
Run Code Online (Sandbox Code Playgroud)

fal*_*tru 34

你可以使用.rowcount属性:

cursor.execute("""INSERT INTO `User`(`UID`, `IP`) VALUES(%s,%s);""", params)
print("affected rows = {}".format(cursor.rowcount))
Run Code Online (Sandbox Code Playgroud)

.rowcount此只读属性指定最后一个.execute*()生成的行数(对于SELECT等DQL语句)或受影响的行(对于UPDATE或INSERT等DML语句).[9]

  • 请注意,如果您使用UPDATE语句并且恰好发生行更新的数据已经与数据库中已有的数据相同,则会有*匹配的*行,但不会影响**在``0` .rowcount`. (5认同)
  • @GiaDuongDucMinh,您是否像方法一样调用rowcount?`.rowcount()`?这不是一种方法. (2认同)