2017-07-11 4 views
0

Ich habe Python-Skript, um Domänen von SQL zu Nginx zu bekommen.Funktioniert nicht Cursor-Funktion in Python

#!/usr/bin/python3 

import MySQLdb 

query = 'SELECT name_of_domain FROM domain_table' 
database_connect = MySQLdb.connect(host=host, user=user, passwd=password, db=database, port=port) 
cursor = database_connect.cursor() 
cursor.execute(query) 
while True: 
    row = cursor.fetchone() 
    print (row) 

In diesem Fall ist alles in Ordnung. In einer Schleife habe ich Zeile für Zeile alle Zeilen erhalten. entschied ich mich Funktion zu verwenden: Meine Funktion:

def get_cursor(): 
    database_connect = MySQLdb.connect(host=host, user=user, passwd=password, port=port, db=database, charset='utf8') 
    database_connect.autocommit(True) 
    return database_connect.cursor(MySQLdb.cursors.DictCursor) 

Und ich habe versucht, diese zu nutzen:

#!/usr/bin/python3 

import MySQLdb 

cursor = get_cursor() 
query = 'SELECT name_of_domain FROM domain_table' 
cursor.execute(query) 
while True: 
    row = cursor.fetchone() 
    print (row) 

Aber in diesem Fall, ich habe nur ein Ergebnis, und meine nächsten Funktionen don erhalten arbeite nicht. Wo ich Fehler habe? Bitte helfen Sie.

+0

haben Sie versucht: row = cursor.fetchmany (size = 1)? – brotherperes

+0

'TypeError: nicht unterstützte Operandentyp (en) für +: 'dict' und 'str'' – Piduna

+0

Was passiert, wenn Sie' MySQLdb.cursors.DictCursor' in den einen setzen, der funktioniert? Hat das das gleiche Verhalten? – Stael

Antwort