sqlite3.OperationalError error

0

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

The error 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 these:

# -*- 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()
    
asked by anonymous 10.06.2016 / 12:51

1 answer

1

The error is simple, when you create a column of a table, it can not have spaces. When you create the Customers table, change the row:

data de nascimento DATE NOT NULL,

To:

data_de_nascimento DATE NOT NULL,

Another note: it is recommended that you do not use non-ASCII characters (such as accent, cedilla, etc.). Change the line:

usuário TEXT NOT NULL,

for

usuario TEXT NOT NULL,
    
10.06.2016 / 15:22