Boa noite ! Estou usando o conector mysql.connector e adaptei o código para esse conector
Porém ao tentar inserir registros na aplicação a mesma não retorna o registros, ficando em branco.
tinha uma variável chamada traduz_jogos(cursor.fetchall()) que não estava definida. Removi deixando somente o cursor.fetchall() mas mesmo assim não
funcionol. poderiam me ajudar com esse problema ?
segue o código abaixo, obrigado !!
/*dao*/
from models import Jogo, Usuario
SQL_DELETA_JOGO = 'delete from jogo where id = %s'
SQL_JOGO_POR_ID = 'SELECT id, nome, categoria, console from jogo where id = %s'
SQL_USUARIO_POR_ID = 'SELECT id, nome, senha from usuario where id = %s'
SQL_ATUALIZA_JOGO = 'UPDATE jogo SET nome=%s, categoria=%s, console=%s where id = %s'
SQL_BUSCA_JOGOS = 'SELECT id, nome, categoria, console from jogo'
SQL_CRIA_JOGO = 'INSERT into jogo (nome, categoria, console) values (%s, %s, %s)'
class JogoDao:
def __init__(self, db):
self.__db = db
def salvar(self, jogo):
cursor = self.__db.cursor()
if (jogo.id):
cursor.execute(SQL_ATUALIZA_JOGO, (jogo.nome, jogo.categoria, jogo.console, jogo.id))
else:
cursor.execute(SQL_CRIA_JOGO, (jogo.nome, jogo.categoria, jogo.console))
jogo.id = cursor.lastrowid
self.__db.commit()
return jogo
def listar(self):
cursor = self.__db.cursor()
cursor.execute(SQL_BUSCA_JOGOS)
jogos = cursor.fetchall()
return jogos
def busca_por_id(self, id):
cursor = self.__db.connection.cursor()
cursor.execute(SQL_JOGO_POR_ID, (id,))
tupla = cursor.fetchone()
return Jogo(tupla[1], tupla[2], tupla[3], id=tupla[0])
def deletar(self, id):
self.__db.cursor().execute(SQL_DELETA_JOGO, (id, ))
self.__db.commit()
class UsuarioDao:
def __init__(self, db):
self.__db = db
/* Prepara_banco */
import mysql.connector
print('Conectando...')
conn = mysql.connector.connect(user='root',password='mysql',host='0.0.0.0',database='mydesenv')
cursor = conn.cursor()
sql.execute('create database if not exists jogoteca')
sql.execute('use jogoteca')
sql.execute("""create table if not exists jogo
(id int(11) not null auto_increment,
nome varchar(50) collate utf8_bin not null,
categoria varchar(40) collate utf8_bin not null,
console varchar(20) not null,
primary key (id)) engine=innodb default charset=utf8 collate=utf8_bin""")
sql.execute("""create table if not exists usuario (id varchar(8) primary key not null,nome varchar(20) not null,senha varchar(8) not null)""")
# inserindo usuarios
sql.executemany(
'INSERT INTO mydesenv.usuario (id, nome, senha) VALUES (%s, %s, %s)',
[
('luan', 'Luan Marques', 'flask'),
('nico', 'Nico', '7a1'),
('danilo', 'Danilo', 'vegas')
])
sql.execute('select * from mydesenv.usuario')
print(' ------------- Usuários: -------------')
for user in sql.fetchall():
print(user[1])
# inserindo jogos
sql.executemany(
'INSERT INTO mydesenv.jogo (nome, categoria, console) VALUES (%s, %s, %s)',
[
('God of War 4', 'Acao', 'PS4'),
('NBA 2k18', 'Esporte', 'Xbox One'),
('Rayman Legends', 'Indie', 'PS4'),
('Super Mario RPG', 'RPG', 'SNES'),
('Super Mario Kart', 'Corrida', 'SNES'),
('Fire Emblem Echoes', 'Estrategia', '3DS'),
])
sql.execute('select * from mydesenv.jogo')
print(' ------------- Jogos: -------------')
for jogo in sql.fetchall():
print(jogo[1])
# commitando senão nada tem efeito
conn.commit()
sql.close()