【bug】pymysql.err.OperationalError: (1046, ‘No database selected‘)
【bug】pymysql.err.OperationalError: (1046, ‘No database selected’)
环境
PyMySQL 1.1.1
问题详情
在使用pymysql查询数据出现的错误。
import pymysql
def query_data(name):
"""查询所有name 等于name的数据"""
connection = pymysql.connect(host='localhost',port=3306,user='root',password='123456',charset='utf8mb4',cursorclass=pymysql.cursors.DictCursor)
cursor = connection.cursor()
sql = "SELECT * FROM test WHERE name = %s"
cursor.execute(sql, (name,))
result = cursor.fetchall()
connection.close()
return result
if __name__ == '__main__':
result = query_data("Jane")
print(result)
错误原因是pymysql.connect连接数据库时并没有连接到具体的数据库。
解决方法
方法1:先连接到总数据库,再连接具体数据库
connection = pymysql.connect(host='localhost',port=3306,user='root',password='123456',charset='utf8mb4',cursorclass=pymysql.cursors.DictCursor)
connection.select_db("test") # 连接到具体数据库
方法2:一步到位,连接到具体数据库
connection = pymysql.connect(
host='localhost',
port=3306,
user='root',
password='123456',
charset='utf8mb4',
database='test', # 具体数据库名称
cursorclass=pymysql.cursors.DictCursor,
)
参考
填坑记2:pymysql报错提示:pymysql.err.OperationalError: (1046, ‘No database selected‘)_pymysql.err.operationalerror: (1046, 'no database -CSDN博客