gpt4 book ai didi

Python 和 MySQL-Connector-Python

转载 作者:行者123 更新时间:2023-11-29 09:53:44 25 4
gpt4 key购买 nike

注意我在 Windows 操作系统上使用以下版本的 Python:

(venv) C:\>python
Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 16:07:46) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.

*运行下面的 Python 脚本,输出显示在其下面的目录中。该脚本的大部分内容是从以下来源使用的:

https://pynative.com/python-mysql-select-query-to-fetch-data/

脚本 1

import mysql.connector
from mysql.connector import Error
try:
cnx = mysql.connector.connect(user='root', password='coldplay123',
host='localhost',
database='nathan_test_1')

cursor_1 = cnx.cursor()
s1="select * from dataframe"
cursor_1.execute(s1)
data1 = cursor_1.fetchall()

print("Total number of dataframes: ", cursor_1.rowcount)

for i1 in data1:
print(i1)
cursor_1.close()

except Error as e1:
print("Failure to connect ... ", e1)

cnx.close()

脚本 1 的输出

Total number of dataframes:  1
('a', 'b', 'c', 699)

*现在,我只更改脚本 1 中的两行只需将它们注释掉就可以在中间并生成以下输出:

脚本 2

import mysql.connector
from mysql.connector import Error
try:
cnx = mysql.connector.connect(user='root', password='coldplay123',
host='localhost',
database='nathan_test_1')

cursor_1 = cnx.cursor()
#s1="select * from nathan"
#cursor_1.execute(s1)
data1 = cursor_1.fetchall()

print("Total number of dataframes: ", cursor_1.rowcount)

for i1 in data1:
print(i1)
cursor_1.close()

except Error as e1:
print("Failure to connect ... ", e1)

cnx.close()

脚本 2 的输出

Failure to connect ...  No result set to fetch from.

*很容易看出导致此错误的原因,但为什么却不明白允许“cursor_1”执行给定的 SQL 查询会导致此情况错误?

最佳答案

根据PEP 249 - Python Database API Specification v2.0 , fetchone, fetchmany, fetchall documentation ,

An Error (or subclass) exception is raised if the previous call to .execute*() did not produce any result set or no call was issued yet.

fetch*() 调用后应紧接着 execute 调用。

关于Python 和 MySQL-Connector-Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54294358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com