Задать вопрос
@veremii
говнокодю на js

Непонятная передача переменной при sqlite3 execute?

Проблема в чём, делаю запрос к БД, таблица создана, всё хорошо.
cu.execute(insert into inc_indexes(number) values ([])', (nums))

и оно мне пишет
cu.executemany('insert into inc_indexes(number) values ([])', (nums))
sqlite3.OperationalError: no such column:


если делать так как описано в документации - получается ошибка количества аргументов.
nums - это кортеж с цифробуквенными значениями, заполнен как надо.
Однако при передаче переменной в запрос sqlite видит не один элемент состоящий из букв, а все буквы как элементы, соответственно процесс не идёт, не подскажете в чём может быть печаль?
  • Вопрос задан
  • 2642 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
yttrium
@yttrium
есть догадка что нужно передавать вторым аргументом или правильный кортеж или спискок.
а догадка потому что исходный код с ошибками. Приведите реальный исходный код.
Ответ написан
Комментировать
Vapaamies
@Vapaamies
Психанул и снес свои ответы не отмечающим решения…
Number -- не ключевое слово в SQLite? Число полей в скобках должно соответствовать числу их значений в скобках после values.
Ответ написан
Комментировать
@veremii Автор вопроса
говнокодю на js
db = sqlite3
    c = db.connect(database="incidents")
    cu = c.cursor()
    print (nums)
    cu.execute('create table if not exists inc_indexes(id INTEGER PRIMARY KEY AUTOINCREMENT, number TEXT)')
    c.commit()
    #Fillup table with short information
    for i in nums:
        cu.execute('insert into inc_indexes(number) values (?)', i )
        c.commit()


Собсна вот такой кусок кода. nums - это список, по индексу выдаётся то что нужно, а именно слово сотоящее из 8ми букв, слитно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы