tôi đang cố gắng để truy vấn trên một cơ sở dữ liệu MySQL địa phương sử dụng (3.4) mô-đun MySQL Python với đoạn mã sau:Tại sao MySQL thực thi trả về Không?
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
Theo như tôi có thể nói, kết nối thành công, cơ sở dữ liệu bao gồm nhiều hàng nhưng truy vấn luôn trả về loại không có.
Chức năng thực hiện MySQL nào trả về None?
'c.execute()' không trả lại bất kỳ điều gì trừ khi bạn sử dụng tùy chọn 'multi = True'. Sau đó, nó trả về một trình lặp cho phép bạn duyệt qua các kết quả của mỗi truy vấn trong nhiều truy vấn. – Barmar
Thông thường, bạn gọi các phương thức trên con trỏ để nhận kết quả từ truy vấn, ví dụ: 'c.fetchone()' để lấy một hàng, 'c.fetchall()' để nhận tất cả các kết quả. – Barmar
Xem tài liệu tại http://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlcursor.html – Barmar