簡體   English   中英

無法使用python將任何數據插入數據庫

[英]Unable to insert any data to the database using python

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是問題。 否則,名為string的sql應該以分號(;)結尾。未執行的主代碼

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

except:
    Myschool.rollback()

甚至我也用過try和except關鍵字。

create_a_new_table()
insert_data()

我測試了您的代碼。 我發現了三個問題。

一個問題是您正在使用兩個不同的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(?, ?);"""

您將再次步入正軌。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM