@NOblo

Sqlite3 3 ошибка, что за ошибка на ровном месте?

Вот код:
import sqlite3 
db = sqlite3.connect('server.sqlite') 
sql = db.cursor() 
sql.execute("""CREATE TABLE IF NOT EXISTS _Users_ (name TEXT)""") 
db.commit() 
UserName = input("Ваш ник?: ") 
sql.execute("SELECT name FROM _Users_") 
 
sql.execute("INSERT INTO _Users_ VALUES (?)", (UserName)) 
 
db.commit() 
for i in sql.execute("SELECT * FROM _Users_"): 
 print("Вот все ники:" + i)

Вот ошибка такая:
sql.execute("INSERT INTO _Users_ VALUES (?)", (UserName))
sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 8 supplied.

Можно в input записать 1 букву, и все норм будет, без ошибки, но если 2 и больше букв, то вот, ошибка. Как сделать чтобы слова можно было записывать в базу?
  • Вопрос задан
  • 197 просмотров
Решения вопроса 2
ScriptKiddo
@ScriptKiddo
sql.execute("INSERT INTO _Users_ VALUES (?)", ((UserName,)))
Ответ написан
Комментировать
import sqlite3


db = sqlite3.connect('server.sqlite')

cur = db.cursor()

cur.execute("""CREATE TABLE IF NOT EXISTS _Users_ (name TEXT)""")

UserName = input("Ваш ник?: ")
 
cur.execute("INSERT INTO _Users_(name) VALUES (?)", (UserName,))
 
db.commit()

rows = cur.execute("SELECT * FROM _Users_")

for i in rows: 
    print("Вот все ники: ", i)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы