【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 -优快云博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值