sqlite3.Operationalerror error

Asked

Viewed 402 times

1

I’m having a problem with sqlite3 in python, can anyone help me?

the mistake is this:

:~$ python3 05_create_data_param.py
Nome: Henry Elias Carlos Eduardo dos Santos
Usuário: Henry94
Senha: mGq0HJAM2C
Data de nascimento: 08/01/1994
CPF: 772.041.070-04
Email: [email protected]
Fone: (85) 3808-2828
Cidade: Fortaleza
UF: CE
Criado em (yyyy-mm-dd): 10/06/2016
Traceback (most recent call last):
  File "05_create_data_param.py", line 24, in <module>
""", (p_nome, p_usuario, p_senha, p_nascimento, p_cpf, p_email, p_fone,p_cidade, p_uf, p_criado_em))
sqlite3.OperationalError: near "de": syntax error

the codes are those:

# -*- coding: utf-8 -*-

import sqlite3


conn = sqlite3.connect('clientes.db')

cursor = conn.cursor()


cursor.execute("""
CREATE TABLE clientes (
        id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
        nome TEXT NOT NULL,
        usuário TEXT NOT NULL,
        senha TEXT NOT NULL,
        data de nascimento DATE NOT NULL,
        cpf     VARCHAR(11) NOT NULL,        
        fone TEXT,
        cidade TEXT,
        uf VARCHAR(2) NOT NULL,
        criado_em DATE NOT NULL
);
""")

print('Tabela criada com sucesso.')

conn.close()

and

# -*- coding: utf-8 -*-
import sqlite3

conn = sqlite3.connect('clientes.db')
cursor = conn.cursor()

p_nome = input('Nome: ')
p_usuario = input('Usuário: ')
p_senha = input('Senha: ')
p_nascimento = input('Data de nascimento: ')
p_cpf = input('CPF: ')
p_email = input('Email: ')
p_fone = input('Fone: ')
p_cidade = input('Cidade: ')
p_uf = input('UF: ')
p_criado_em = input('Criado em (yyyy-mm-dd): ')

cursor.execute("""
INSERT INTO clientes (nome, usuario, senha, data de nascimento, cpf, email, fone, cidade, uf, criado_em)
VALUES (?,?,?,?,?,?,?,?,?,?)
""", (p_nome, p_usuario, p_senha, p_nascimento, p_cpf, p_email, p_fone, p_cidade, p_uf, p_criado_em))

conn.commit()

print('Dados inseridos com sucesso.')

conn.close()

1 answer

1


The error is simple, when you create a column of a table, it cannot have spaces. When creating the Clients table, change the row:

data de nascimento DATE NOT NULL,

for:

data_de_nascimento DATE NOT NULL,

Another remark: it is recommended not to use non-ASCII characters (like accent, cedilla etc). Change line:

usuário TEXT NOT NULL,

for

usuario TEXT NOT NULL,
  • wow, that lack of attention to my... thank you very much

Browser other questions tagged

You are not signed in. Login or sign up in order to post.