2
respostas

prepara_banco.py

O retorno do terminal é esse ao executar o prepara_banco.py

C:\Users\Xavier\Documents\jogoteca>"C:/Program Files/Python/python.exe" c:/Users/Xavier/Documents/jogoteca/prepara_banco.py
Conectando...
 -------------  Usuários:  -------------
Danilo
Luan Marques
Nico
Traceback (most recent call last):
  File "c:\Users\Xavier\Documents\jogoteca\prepara_banco.py", line 44, in <module>
    cursor.executemany(
  File "C:\Program Files\Python\lib\site-packages\MySQLdb\cursors.py", line 230, in executemany
    return self._do_execute_many(
  File "C:\Program Files\Python\lib\site-packages\MySQLdb\cursors.py", line 266, in _do_execute_many
    rows += self.execute(sql + postfix)
  File "C:\Program Files\Python\lib\site-packages\MySQLdb\cursors.py", line 206, in execute
    res = self._query(query)
  File "C:\Program Files\Python\lib\site-packages\MySQLdb\cursors.py", line 319, in _query
    db.query(q)
  File "C:\Program Files\Python\lib\site-packages\MySQLdb\connections.py", line 259, in query
    _mysql.connection.query(self, query)
MySQLdb._exceptions.OperationalError: (1366, "Incorrect string value: '\\xE7\\xE3o' for column 'categoria' at row 1")
2 respostas

consegui consertar o erro mudando o código dentro do criar_tabelas no arquivo prepara_banco.py mudei o código de:

'''SET NAMES utf8;
    CREATE DATABASE `jogoteca` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci */;
    USE `jogoteca`;
    CREATE TABLE `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;
    CREATE TABLE `usuario` (
      `id` varchar(8) COLLATE utf8_bin NOT NULL,
      `nome` varchar(20) COLLATE utf8_bin NOT NULL,
      `senha` varchar(8) COLLATE utf8_bin NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=general_ci;'''

para:

'''CREATE DATABASE `jogoteca` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
    USE `jogoteca`;
    CREATE TABLE `jogo` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `nome` varchar(50) NOT NULL,
      `categoria` varchar(40) NOT NULL,
      `console` varchar(20) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
    CREATE TABLE `usuario` (
      `id` varchar(8) NOT NULL,
      `nome` varchar(20) NOT NULL,
      `senha` varchar(8) NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;'''

Oiii Ailton, tudo certinho por aí?

Fico feliz que tenho conseguido resolver. Obrigada por compartilhar sua solução conosco.

Qualquer dúvida estou por aqui.

Grande abraço!