无法使用python将任何数据插入数据库

时间:2018-06-23 20:50:49

标签: python sqlite relational-database

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()

即使我也使用了try和except关键字。

create_a_new_table()
insert_data()

1 个答案:

答案 0 :(得分:1)

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

一个问题是您正在使用两个不同的sqlite文件(在第一个文件中缺少“ for”)。一个好技巧是始终考虑DRY(不要重复自己)。

您的插入语句有两个问题:

  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(?, ?);"""

您将再次步入正轨。