Problema con mysql?

Iniciado por Panic0, 12 Abril 2021, 01:19 AM

0 Miembros y 2 Visitantes están viendo este tema.

Panic0

Hola a todos, estoy creando un sistema de consultas con "MySql", ya cree la base de datos y cree un usuario con permisos para hacer consultas.

Hasta ahí todo funciona, probé hacer consultas desde "Db schema" y todo funciona...

El problema esta al momento de hacer esto con python, cuando hago una consulta por algún motivo me devuelve un "Integer", no se por que pasa esto.

Les dejo el código de python, capaz es algo que estoy haciendo mal

import pymysql
import time
import os

mi_database  = pymysql.connect(user="****", password="**********",host="*********", database ="*****")
puntero = mi_database.cursor()

clear = lambda:(os.system("cls"))


puntero.execute("show tables;")
test = puntero.fetchall()
Los ataques de pánico suelen comenzar de forma súbita, sin advertencia.

Jona009

Nose si estare mal, pero segun yo "show tables", no es una query de sql

Xyzed

Hola @Panic0.

¿Podrías adjuntar tu error?
Lo único que veo ahí es que no ejecutas la indicación para imprimir lo que definiste.

Código (python) [Seleccionar]

import pymysql
import time
import os

mi_database  = pymysql.connect(host = "localhost", user = "root", passwd = "", database = "tudb")
puntero = mi_database.cursor()

clear = lambda:(os.system("cls"))

puntero.execute("show tables;")

test = puntero.fetchall()

for x in test: #bucle for para que devuelva todas las tablas.
    print(x) #las imprime mediante el bucle.

Esto funciona correctamente y me imprimió las tablas:

Código (batch) [Seleccionar]

('test1',)
('test2',)
('test3i',)


Luego claro, desempaquetas esto a tu gusto si lo deseas.

Código (python) [Seleccionar]

for x in test:
    [x] = x #para quitar los caracteres que agrega el interprete: "('')".
    print(x)
...

Panic0

Cita de: Xyzed en 14 Abril 2021, 22:00 PM
Hola @Panic0.

¿Podrías adjuntar tu error?
Lo único que veo ahí es que no ejecutas la indicación para imprimir lo que definiste.

Código (python) [Seleccionar]

import pymysql
import time
import os

mi_database  = pymysql.connect(host = "localhost", user = "root", passwd = "", database = "tudb")
puntero = mi_database.cursor()

clear = lambda:(os.system("cls"))

puntero.execute("show tables;")

test = puntero.fetchall()

for x in test: #bucle for para que devuelva todas las tablas.
    print(x) #las imprime mediante el bucle.

Esto funciona correctamente y me imprimió las tablas:

Código (batch) [Seleccionar]

('test1',)
('test2',)
('test3i',)


Luego claro, desempaquetas esto a tu gusto si lo deseas.

Código (python) [Seleccionar]

for x in test:
    [x] = x #para quitar los caracteres que agrega el interprete: "('')".
    print(x)


Hola Xyzed link, el error básicamente era que el momento de de guardar las tablas en un "fetchall" me devolvía un valor tipo "int",
ej:

#consulta
puntero.execute("show tables;")

tablas = puntero.fetchall()

#Aqui por algun motivo el resultado era un int
print(type(tabla))



Ahora bien, como solucione esto y que era el problema, bueno no estoy seguro, simplemente volví a ejecutar una y otra vez la consulta pero desde "cmd" y por algún motivo funcionaba perfecto...Después lo probé desde visual y también funcionaba perfecto...básicamente se arreglo solo....así que idk

De todas formas, gracias por la ayuda!  ;D
Los ataques de pánico suelen comenzar de forma súbita, sin advertencia.