Проблема со вставкой в ​​базу данных MySQL из Python - PullRequest
4 голосов
/ 22 мая 2011

У меня проблемы с вставкой записи в базу данных MySQL из python.Это то, что я делаю.

def testMain2():
        conn = MySQLdb.connect(charset='utf8', host="localhost", user="root", passwd="root", db="epf")
        cursor = conn.cursor()

        tableName = "test_table"

        columnsDef = "(export_date BIGINT, storefront_id INT, genre_id INT, album_id INT, album_rank INT)"
        exStr = """CREATE TABLE %s %s""" % (tableName, columnsDef)
        cursor.execute(exStr)

        #Escape the record
        values = ["1305104402172", "12", "34", "56", "78"]                    
        values = [conn.literal(aField) for aField in values]

        stringList = "(%s)" % (", ".join(values))
        columns = "(export_date, storefront_id, genre_id, album_id, album_rank)"
        insertStmt = """INSERT INTO %s %s VALUES %s""" % (tableName, columns, stringList)
        cursor.execute(insertStmt)

        cursor.close()
        conn.close()

Таблица создана, но в ней ничего нет.Я могу успешно выполнить оператор INSERT в Терминале с теми же учетными данными.

Есть предложения о том, что я могу делать неправильно?

1 Ответ

9 голосов
/ 22 мая 2011

Вы не совершили транзакцию.

conn.commit()

(Библиотека MySQLdb устанавливает для autocommit значение False при подключении к MySQL. Это означает, что вам нужно вручную вызвать commit, иначе ваши изменения никогда не будут внесеныэто в базу данных.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...