Falha ao realizar consulta composta DB mysql

44 views
Skip to first unread message

Sergio Iescas

unread,
Nov 5, 2023, 5:21:04 AM11/5/23
to Python Brasil
Bom dia a todos na paz do Senhor Jesus, algum dos irmãos poderia por favor me explicar porque a mensagem de erro diz que nem todos os arquivos foram convertidos durante a formação da string
Nota: em uma pesquisa simples apenas um item, o mesmo modelo de código funciona perfeitamente.
segue código:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
import pymysql
from utilitarios.ordem_producao import Ordem_producao
from utilitarios.usuarios import Senha_usuario
from utilitarios.resultadoA import ResultadoA


def conexao_4():
    global resultado

    while True:
        try:
            conexao = pymysql.connect(
                host='localhost',
                user='root',
                passwd='',
                database='automatizaf')
            cursor = conexao.cursor()
            cursor.execute('SELECT ordem_producao, senha_usuario FROM tb_registro_ordem_producao WHERE'
                           ' ordem_producao =' + Ordem_producao.ordem_producao,
                           ' senha_usuario =' + Senha_usuario.senha_usuario)
            resultado = cursor.fetchall()
            ResultadoA.resultadoA = list(resultado[0][1])
            print(f'Ordem: {ResultadoA.resultadoA[0]} User: {ResultadoA.resultadoA[1]} Ok')
            cursor.close()
            break
        except IndexError:
            ResultadoA.resultadoA = []
            print(f'Ordem nao encontrada{ResultadoA.resultadoA}')
            break
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
segue erro:
Erro consulta mysql.png

Davi Lobato

unread,
Nov 6, 2023, 7:53:25 AM11/6/23
to Python Brasil
Olá sergio,

tente isso,  usando espaços reservados para consultas SQL mais seguras e legíveis e lida com possíveis exceções:


import pymysql
from utilitarios.ordem_producao import Ordem_producao
from utilitarios.usuarios import Senha_usuario
from utilitarios.resultadoA import ResultadoA

def conexao_4():
    global resultado

    while True:
        try:
            conexao = pymysql.connect(
                host='localhost',
                user='root',
                passwd='',
                database='automatizaf')
            cursor = conexao.cursor()

            # Use placeholders to safely pass values
            query = 'SELECT ordem_producao, senha_usuario FROM tb_registro_ordem_producao WHERE ordem_producao = %s AND senha_usuario = %s'
            cursor.execute(query, (Ordem_producao.ordem_producao, Senha_usuario.senha_usuario))

            resultado = cursor.fetchall()
            if resultado:

                ResultadoA.resultadoA = list(resultado[0][1])
                print(f'Ordem: {ResultadoA.resultadoA[0]} User: {ResultadoA.resultadoA[1]} Ok')
            else:
                ResultadoA.resultadoA = []
                print(f'Ordem não encontrada: {ResultadoA.resultadoA}')
            cursor.close()
            break
        except Exception as e:
            print(f"An error occurred: {str(e)}")
            break

Kaique Afonso

unread,
Nov 6, 2023, 10:47:14 AM11/6/23
to python...@googlegroups.com
Bom dia Sérgio, tenta colocar a string que está dentro do execute() em uma variável, e faz um print e verifica se está como uma query executável

--
--
------------------------------------
Grupo Python-Brasil
https://wiki.python.org.br/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para acessar essa discussão na Web, acesse https://groups.google.com/d/msgid/python-brasil/8bf27eac-5c7e-45ca-b1be-ca83394609d4n%40googlegroups.com.


--
Kaique Afonso Ferreira do Rosário
Deus, Pátria e Família
Santo Antônio de Jesus (BA) - 44440-822
(75) 98172-9111 Oi  Kaique

Reply all
Reply to author
Forward
0 new messages