2013-09-27 19 views
10

Sto usando Python MySQL Connector, ho inserito un record nel database, e ha avuto successo. Ma in codice Python, come posso sapere se è inserito o no? La mia tabella non ha una chiave primaria.Python come sapere se un record inserito correttamente o no

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 

risposta

20

È possibile utilizzare l'attributo .rowcount:

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

.rowcount Questa sola lettura attributo specifica il numero di righe che l'ultimo .execute *() prodotto (per le dichiarazioni DQL come SELECT) o interessato (per istruzioni DML come UPDATE o INSERT). [9]

+0

Grazie, funziona. : D –

+0

Un'altra domanda @falsetru, ho usato .rowcount prima di postare questa domanda. Ma ha lanciato un errore "'int' non può essere richiamabile". Ma ora ha funzionato, davvero non so perché. –

+2

@GiaDuongDucMinh, hai chiamato il metodo rowcount like? '.rowcount()'? Non è un metodo. – falsetru

Problemi correlati