【发布时间】:2017-07-11 09:24:53
【问题描述】:
我有 python 脚本来获取从 sql 到 nginx 的域。
#!/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)
在这种情况下一切正常。在一个循环中,我逐行接收所有行。 我决定使用功能: 我的功能:
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)
我已经尝试过使用这个:
#!/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)
但在这种情况下,我只收到一个结果,我的下一个功能不起作用。我哪里有错误?请帮忙。
【问题讨论】:
-
你试过了吗:row = cursor.fetchmany(size=1)?
-
TypeError: unsupported operand type(s) for +: 'dict' and 'str' -
如果您将
MySQLdb.cursors.DictCursor放入有效的那个会发生什么?这会产生相同的行为吗?
标签: python mysql while-loop cursor