Python 为什么这个sqlite3 insert语句不添加行?

Python 为什么这个sqlite3 insert语句不添加行?,python,sql,sqlite,cgi,Python,Sql,Sqlite,Cgi,我有一个表,skills,尽管我试图添加行,但它目前是空的。我在CGI脚本中有以下Python代码: open('/tmp/skills', 'a').write('Reached 1!\n') if get_cgi('nous2dianoia'): open('/tmp/skills', 'a').write('Reached 2!\n') #if (get_cgi('previous') and get_cgi('name') and get_cgi('previous')

我有一个表,skills,尽管我试图添加行,但它目前是空的。我在CGI脚本中有以下Python代码:

open('/tmp/skills', 'a').write('Reached 1!\n')
if get_cgi('nous2dianoia'):
    open('/tmp/skills', 'a').write('Reached 2!\n')
    #if (get_cgi('previous') and get_cgi('name') and get_cgi('previous') !=
      #get_cgi('name')):
        #cursor.execute('DELETE FROM skills WHERE name = ?;',
          #(get_cgi('previous'),))
    cursor.execute('''INSERT INTO skills (name, nous2dianoia,
      hereandnow2escapist, nf2nt, social2individual, ithou2iit,
      slow2quick) VALUES (?, ?, ?, ?, ?, ?, ?);''',
      (get_cgi('name'), get_cgi('nous2dianoia'),
      get_cgi('hereandnow2escapist'), get_cgi('nf2nt'),
      get_cgi('social2individual'), get_cgi('ithou2iit'),
      get_cgi('slow2quick'),))
    open('/tmp/skills', 'a').write('Reached 3!\n')
当我加载页面时,/tmp/skills有一个新添加的:

Reached 1!
Reached 2!
Reached 3!
然而,该表仍然是空的。(脚本的其余部分运行时不会崩溃,并显示如果在未传递任何CGI变量的情况下调用脚本时所期望显示的内容。)

我还没有开始交易;SQL操作并不特别高级或复杂

关于如何在没有报告错误的情况下运行此程序,但数据库中有一个空的技能表,有什么见解吗


谢谢,

您的insert语句不会自动提交。从以下文件:

commit()

此方法提交当前事务。如果你不 调用此方法时,自上次调用commit()以来所做的任何操作都是 在其他数据库连接中不可见。如果你想知道为什么 没有看到您写入数据库的数据,请检查 别忘了调用这个方法

要自动提交,请执行以下操作:

非常感谢。将接受(应该是connection.commit())。我早些时候就试着去做了,但却犯了一个错误。
# connection.commit() is called automatically upon exit of context manager
# unless an exception is encountered, then connection.rollback() is called.
with connection:
    connection.execute(insert_statment)