首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >无法使用python向数据库插入任何数据

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

Stack Overflow用户
提问于 2018-06-24 04:50:49
回答 1查看 37关注 0票数 0
代码语言:javascript
复制
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命名字符串应以分号(;)结尾,表示未执行的主代码

代码语言:javascript
复制
try:
    curschool.execute(sql, (1, "aNIKET GHOSH"))
    Myschool.commit()
    Myschool.close()

except:
    Myschool.rollback()

甚至我也用过try和except关键字。

代码语言:javascript
复制
create_a_new_table()
insert_data()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-24 06:32:11

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

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

insert语句有两个问题:

  1. INSERT INTO TABLE ...正确的语法是INSERT INTO ...
  2. You,而不是正确的语法?

,使用的是%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(?, ?);"""

你就会重回正轨。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51004938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档