2013-09-27 11 views
10

Używam Python MySQL Connector, włożyłem rekord do bazy danych, i to się udało. Ale w kodzie Pythona, skąd mogę wiedzieć, czy jest wstawiony czy nie? Moja tabela nie ma klucza podstawowego.Python jak sprawdzić, czy rekord wstawiony pomyślnie czy nie

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 

Odpowiedz

20

Można użyć .rowcount atrybut:

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

.rowcount To tylko do odczytu atrybut określa liczbę wierszy, które ostatniej .Execute *() wyprodukowany (dla sprawozdania DQL jak SELECT) lub (dotyczy instrukcji DML, takich jak UPDATE lub INSERT). [9]

+0

Dzięki, to działa. : D –

+0

Jeszcze jedno pytanie @falsetru, użyłem .rowcount przed opublikowaniem tego pytania. Ale wystąpił błąd "nie można wywołać" int ". Ale teraz zadziałało, naprawdę nie wiem dlaczego. –

+2

@GiaDuongDucMinh, zadzwoniłeś do metody wiersza jak w wierszu? '.rowcount()'? To nie jest metoda. – falsetru

Powiązane problemy