Próbuję kwerendy w lokalnej bazie danych MySQL przy użyciu (3.4) modułu MySQL Pythona z następującego kodu:Dlaczego wykonanie MySQL powraca Brak?
class databases():
def externaldatabase(self):
try:
c = mysql.connector.connect(host="127.0.0.1", user="user",
password="password", database="database")
if c.is_connected():
c.autocommit = True
return(c)
except:
return(None)
d = databases().externaldatabase()
c = d.cursor()
r = c.execute('''select * from tbl_wiki''')
print(r)
> Returns: None
O ile mogę powiedzieć, że połączenie jest skuteczne, gdy baza danych składa się z kilku rzędów ale zapytanie zawsze zwraca typ none.
Jakie instancje wykonuje funkcja wykonywania MySQL? Brak?
'c.execute()' nie zwraca niczego, chyba że używasz opcji 'multi = True'. Następnie zwraca iterator, który pozwala ci przejrzeć wyniki każdego zapytania w wielu zapytaniach. – Barmar
Zwykle metody wywołuje się na kursorze, aby uzyskać wyniki poza zapytaniem, np. 'c.fetchone()', aby uzyskać jeden wiersz, 'c.fetchall()', aby uzyskać wszystkie wyniki. – Barmar
Zobacz dokumentację na stronie http://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlcursor.html – Barmar