无法使用python向数据库插入任何数据怎么办?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (227)
import sqlite3

def create_a_new_table():
    Myschool = sqlite3.connect('normal database for experiment purpose.db')
    curschool = Myschool.cursor()
    curschool.execute("""
                           CREATE TABLE new_Basic_Player_Info
                           (
                              Ranking INTEGER,
                              Player_name TEXT,

                              Country TEXT,
                              Speciality TEXT,
                              Value INTEGER,
                              Cost INTEGER
                            );
                      """)
    Myschool.close()


def insert_data():
    Myschool = sqlite3.connect('normal database for experiment for purpose.db')
    curschool = Myschool.cursor()
   # nm = input("Enter the name of the player: ")
    sql = """INSERT INTO TABLE new_Basic_Player_Info(Ranking, Player_name) 
        VALUES(%s, %s);"""

可能是%s,%s是问题所在。或者,以分号(;)结束命名的sql字符串,这是未执行的主代码。

try:
    curschool.execute(sql, (1, "aNIKET GHOSH"))
    Myschool.commit()
    Myschool.close()

except:
    Myschool.rollback()

我也试过关键字:

create_a_new_table()
insert_data()
提问于
用户回答回答于

我测试了你的代码。我发现了三个问题。

其中一个问题是,你正在使用两个不同的sqite文件(在第一个文件中缺少一个“for”)。一个好的诀窍是总是想着干(不要重复你自己)。

插入声明中的两个问题:

  1. INSERT INTO TABLE ...而正确的语法是INSERT INTO ...
  2. 你在用%s而不是正确的语法

即替换:

sql = """INSERT INTO TABLE new_Basic_Player_Info(Ranking, Player_name) VALUES(%s, %s);"""

带着:

sql = """INSERT INTO new_Basic_Player_Info(Ranking, Player_name) VALUES(?, ?);"""

扫码关注云+社区

领取腾讯云代金券