【bug】pymysql.err.OperationalError: (1046, ‘No database selected’)
环境
PyMySQL 1.1.1
问题详情
在使用pymysql查询数据出现的错误。
import pymysqldef 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 resultif __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博客