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

Python sqlite3报no such column:website错误但列实际存在求解

错误原因
  • 列名误用单引号包裹:SQL语法中,单引号用于标记字符串字面量,你在INSERT语句中给website、username等列名加了单引号,数据库不会将其识别为表的字段。
  • 错误的变量传入方式:你直接把Python侧定义的变量名website、username等写在了SQL的VALUES子句中,数据库会将这些内容识别为要查找的列名,自然找不到对应字段就抛出错误。同时这种写法也存在SQL注入的安全风险。
修复方案

只需要修改create_account函数中的INSERT语句写法即可,调整后代码如下:

def create_account():
    website = input("\nEnter Website: ")
    username = input("Enter Username: ")
    email = input("Enter Email: ")
    password = input("Enter Password: ")

    database_cursor.execute(
        """
        INSERT INTO accounts (website, username, email, password)
        VALUES (?, ?, ?, ?)
    """, (website, username, email, password)
    )

修改点说明:

  1. 去掉了列名外侧的单引号
  2. VALUES子句中使用?作为参数占位符
  3. 把要插入的变量以元组的形式,作为execute方法的第二个参数传入

修改完成后如果运行仍有问题,可以先删除本地已生成的accounts.db文件,再重新运行代码,避免之前错误操作生成的旧表结构产生影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 06:54:03