You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python操作MySQL报错:'NoneType'对象无'cursor'属性求助

解决AttributeError: 'NoneType' object has no attribute 'cursor'错误

错误本质

你传进create_database函数的connection变量是None——也就是说你根本没建立有效的数据库连接,就直接把这个空变量传进去调用cursor()方法了,自然会触发错误。

解决步骤


  1. 先实现有效的数据库连接逻辑
    你需要通过对应数据库的驱动(比如MySQL用mysql-connector-python,PostgreSQL用psycopg2)建立真实连接,以下是MySQL的示例代码:

    import mysql.connector
    from mysql.connector import Error
    
    # 创建基础连接(不指定具体数据库)
    def create_base_connection(host, user, password):
        conn = None
        try:
            conn = mysql.connector.connect(
                host=host,
                user=user,
                password=password
            )
            print("基础连接建立成功")
        except Error as e:
            print(f"连接失败: {e}")
        return conn
    
    # 替换成你的数据库账户信息
    connection = create_base_connection("localhost", "root", "your_db_password")
    

    若使用其他数据库,只需替换对应的连接代码即可(比如PostgreSQL用psycopg2.connect())。

  2. 调用创建数据库函数前校验连接有效性
    在调用create_database前,先判断connection是否不为空,避免无效调用:

    create_database_query = "Create Database Donations"
    if connection is not None:
        create_database(connection, create_database_query)
    else:
        print("无法创建数据库:连接无效")
    
  3. 操作新数据库需重新连接指定库
    创建完Donations数据库后,若要操作该库,需要重新建立指向该库的连接:

    def create_db_connection(host, user, password, db_name):
        conn = None
        try:
            conn = mysql.connector.connect(
                host=host,
                user=user,
                password=password,
                database=db_name
            )
            print(f"已连接到 {db_name} 数据库")
        except Error as e:
            print(f"连接失败: {e}")
        return conn
    
    # 后续操作Donations库时使用这个连接
    db_connection = create_db_connection("localhost", "root", "your_db_password", "Donations")
    

原代码问题点

你原代码直接使用了connection变量,但没有任何代码初始化该变量并建立真实连接,导致它默认是None,调用connection.cursor()时触发错误。

内容的提问来源于stack exchange,提问作者brownie8fire8

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 17:25:19