INSERT INTO .db不执行任何操作。为什么不起作用?

时间:2018-12-11 18:31:10

标签: python database sqlite sql-insert

import sqlite3
fme = open("bestFME.txt", "r")
ln = open("numberline.txt", "r")
lines = fme.readlines()
nums = ln.readlines()
numbers = []

for i in nums:
    numbers.append(int(i[0:-1]))
db = sqlite3.connect("FME111.db")
db.execute("CREATE TABLE IF NOT EXISTS mn(word TEXT, meaning TEXT)")
a = ""
b = ""
for i in range(0, len(numbers)-1):
        a = ""
        b = ""
        a += lines[numbers[i]+1]
        for k in range(numbers[i]+2, numbers[i+1]):
            b += lines[k]
            db.execute("INSERT INTO mn(word, meaning) VALUES(?, ?)", (a, b))

db.close()

2 个答案:

答案 0 :(得分:0)

您可能需要一个光标。下面是一个工作代码

import sqlite3
conn = sqlite3.connect("school.db")
curr = conn.cursor()

curr.execute('''INSERT INTO student VALUES (?,?,?,?)''', (name, lname, fac, school))

答案 1 :(得分:0)

插入后,您可能需要cursorcommit进行更改。 尝试如下所述。

db = sqlite3.connect("FME111.db")

#Get the cursor
dbcursor = conn.cursor()

#execute with cursor
dbcursor.execute("CREATE TABLE IF NOT EXISTS mn(word TEXT, meaning TEXT)")
a = ""
b = ""
for i in range(0, len(numbers)-1):
        a = ""
        b = ""
        a += lines[numbers[i]+1]
        for k in range(numbers[i]+2, numbers[i+1]):
            b += lines[k]
            #execute with cursor
            dbcursor.execute("INSERT INTO mn(word, meaning) VALUES(?, ?)", (a, b))

#Commit with connection
db.commit()
db.close()
相关问题