LINUX.ORG.RU

Python: _mysql_exceptions.OperationalError: (1054, «Unknown column 'ggg' in 'field list'»)

 ,


1

1

Всем привет! Может кто сталкивался с подобной ошибкой. Кусок скрипта ниже:

 # Create DATABASE and TABLE
cursor.execute('''CREATE DATABASE IF NOT EXISTS %s'''%(database))
cursor.execute('''USE %s'''%(database))
cursor.execute('''CREATE TABLE IF NOT EXISTS %s (
                  record_id BIGINT(20) NOT NULL AUTO_INCREMENT,
                  hex_number VARCHAR(20),
                  date_in TIMESTAMP,
                  version VARCHAR(20),
                  manufacturer VARCHAR(20),
                  PRIMARY KEY (record_id))
                  ENGINE=InnoDB DEFAULT CHARSET=utf8 ENGINE=InnoDB'''%(table))
db.commit()

# Add data in table
for i in hex_list:
    cursor.execute('''INSERT INTO %s (hex_number, date_in, applet_version, manufacturer_cards) VALUES (%s, %s, %s, %s)''' %(table, i, date_in, version, manufacturer))
    db.commit()
db.close()

Ошибка:
_mysql_exceptions.OperationalError: (1054, "Unknown column 'ggg' in 'field list'")


Последнее исправление: gadzira (всего исправлений: 1)

Ты теперь все свои трейсы будешь на лор скидывать?

BigAlex ★★★
()
Ответ на: комментарий от gadzira

Тебе в трейсе все ясным английским языком написали.

pylin ★★★★★
()
cursor.execute('''INSERT INTO %s (hex_number, date_in, applet_version, manufacturer_cards) VALUES (%s, %s, %s, %s)''' %(table, i, date_in, version, manufacturer))

Фейспалм. Ты хоть доку почитай, как подставляются значения в запрос.

Deleted
()
Ответ на: комментарий от Deleted

Я поправил немного код, теперь все работает. Можешь развернуть свой комментарий? Где конкретно ошибка?

gadzira
() автор топика
Ответ на: комментарий от Rastafarra

эм, там одна таблица. Или что ты имеешь ввиду?

gadzira
() автор топика
Ответ на: комментарий от gadzira

Ошибка в том что нельзя использовать форматирование строк для подстановки значений в запрос. Обычно с подобной ошибкой сталкиваются когда сайты взламывают :-).

ei-grad ★★★★★
()
Ответ на: комментарий от Deleted

Ок, спасибо! Свой код я брал отсюда

Собственно пример:

c.executemany(
      """INSERT INTO breakfast (name, spam, eggs, sausage, price)
      VALUES (%s, %s, %s, %s, %s)""",
      [
      ("Spam and Sausage Lover's Plate", 5, 1, 8, 7.95 ),
      ("Not So Much Spam Plate", 3, 2, 0, 3.95 ),
      ("Don't Wany ANY SPAM! Plate", 0, 4, 3, 5.95 )
      ] )
gadzira
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.