Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Panic0 en 12 Abril 2021, 01:19 am



Título: Problema con mysql?
Publicado por: Panic0 en 12 Abril 2021, 01:19 am
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

Código:
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()


Título: Re: Problema con mysql?
Publicado por: Jona009 en 14 Abril 2021, 18:54 pm
Nose si estare mal, pero segun yo "show tables", no es una query de sql


Título: Re: Problema con mysql?
Publicado por: 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
  1. import pymysql
  2. import time
  3. import os
  4.  
  5. mi_database  = pymysql.connect(host = "localhost", user = "root", passwd = "", database = "tudb")
  6. puntero = mi_database.cursor()
  7.  
  8. clear = lambda:(os.system("cls"))
  9.  
  10. puntero.execute("show tables;")
  11.  
  12. test = puntero.fetchall()
  13.  
  14. for x in test: #bucle for para que devuelva todas las tablas.
  15.    print(x) #las imprime mediante el bucle.
  16.  
Esto funciona correctamente y me imprimió las tablas:

Código
  1. ('test1',)
  2. ('test2',)
  3. ('test3i',)
  4.  

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

Código
  1. for x in test:
  2.    [x] = x #para quitar los caracteres que agrega el interprete: "('')".
  3.    print(x)
  4.  


Título: Re: Problema con mysql?
Publicado por: Panic0 en 16 Abril 2021, 12:36 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
  1. import pymysql
  2. import time
  3. import os
  4.  
  5. mi_database  = pymysql.connect(host = "localhost", user = "root", passwd = "", database = "tudb")
  6. puntero = mi_database.cursor()
  7.  
  8. clear = lambda:(os.system("cls"))
  9.  
  10. puntero.execute("show tables;")
  11.  
  12. test = puntero.fetchall()
  13.  
  14. for x in test: #bucle for para que devuelva todas las tablas.
  15.    print(x) #las imprime mediante el bucle.
  16.  
Esto funciona correctamente y me imprimió las tablas:

Código
  1. ('test1',)
  2. ('test2',)
  3. ('test3i',)
  4.  

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

Código
  1. for x in test:
  2.    [x] = x #para quitar los caracteres que agrega el interprete: "('')".
  3.    print(x)
  4.  

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:
Código:
#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