2013-09-27 4 views
10

Я использую Python MySQL Connector, я вставил запись в базу данных, и она была успешной. Но в коде Python, как я могу узнать, вставлен ли он или нет? В моей таблице нет первичного ключа.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 

ответ

20

Вы можете использовать .rowcount атрибут:

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

.rowcount Этот атрибут только для чтения определяет число строк, которые последнюю .Execute *(), полученный (для операторов DQL например SELECT) или (для операторов DML, таких как UPDATE или INSERT). [9]

+0

Спасибо, это работает. : D –

+0

Еще один вопрос @falsetru, я использовал .rowcount, прежде чем публиковать этот вопрос. Но это заставило ошибку «int» не может быть вызвано ». Но теперь это сработало, я действительно не знаю, почему. –

+2

@GiaDuongDucMinh, вы назвали метод rowcount как метод? '.rowcount()'? Это не метод. – falsetru

Смежные вопросы