为什么此sqlite3插入语句不添加行?

克里斯托斯·海沃德(Christos Hayward)

我有一张桌子,技能,尽管我试图向其中添加行,但它现在还是空的。我在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操作不是特别高级或复杂。

关于如何使它运行而没有报告的错误但在数据库中有空技能表的任何见解?

谢谢,

史蒂文·鲁姆巴尔斯基

您的插入语句不会自动提交。从以下文档sqlite3.Connection

commit()

此方法提交当前事务。如果不调用此方法,则从其他数据库连接中看不到自从上次调用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)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我的插入语句执行了两次,我不知道为什么。sqlite3

来自分类Dev

缩短SQLite3插入语句以提高效率和可读性

来自分类Dev

为什么使用 SqlCommand 插入语句很慢?

来自分类Dev

多个插入语句android sqlite

来自分类Dev

Chrome的SQLITE中的批量插入语句

来自分类Dev

使用sqlite在插入语句中的位置

来自分类Dev

为什么此switch语句不运行?

来自分类Dev

为什么此SQLite插入失败?

来自分类Dev

为什么在插入被零除后抛出异常执行插入语句

来自分类Dev

为什么此python类方法不起作用?(它使用SQLite3)

来自分类Dev

为什么我不能在sqlite3中使用WITH语句?

来自分类Dev

为什么我不能在sqlite3中使用WITH语句?

来自分类Dev

Python SQLite3:为什么缩进conn.commit()语句会产生这种影响?

来自分类Dev

Python SQLite3-是否在每个插入语句上开始,结束事务?

来自分类Dev

为什么此插入命令在SQLite上什么都不做?

来自分类Dev

插入语句

来自分类Dev

访问插入语句

来自分类Dev

组合插入语句

来自分类Dev

插入语句 Oracle

来自分类Dev

SQLite中的语法错误(插入语句)

来自分类Dev

sqlite连续插入语句停止在200左右运行

来自分类Dev

为什么此MapStruct生成的类不包含import语句?

来自分类Dev

为什么此Ajax表单不插入记录?

来自分类Dev

为什么此SQL不插入数据库?

来自分类Dev

MySQL插入语句外键自动添加pk

来自分类Dev

在单个插入语句中添加增量值

来自分类Dev

Python SQLite3插入

来自分类Dev

Python SQLite3插入

来自分类Dev

为什么即使条件满足,JSP也不运行此'if(s1.equals(s3))'语句?