【发布时间】:2019-08-23 11:39:29
【问题描述】:
我是数据库新手。我正在尝试使用包含单列的表创建一个 sqlite 数据库。
创建后,我想在 for 循环中将项目添加到该列。但是,当我这样做时,它只会添加第一项,而不会添加其他任何内容。
我做错了什么?
代码见下:
>>> import sqlite3
>>> con = sqlite3.connect('posts.db')
>>> cur = con.cursor()
>>> cur.execute('CREATE TABLE posts(ID TEXT)')
<sqlite3.Cursor object at 0x7f2b03733650>
>>> con.commit()
>>> for i in 'hello':
... cur.execute('INSERT INTO posts VALUES(?)',(i,))
... con.commit()
... cur.execute('SELECT * FROM posts')
... print(cur.fetchone())
...
<sqlite3.Cursor object at 0x7f2b03733650>
<sqlite3.Cursor object at 0x7f2b03733650>
('h',)
<sqlite3.Cursor object at 0x7f2b03733650>
<sqlite3.Cursor object at 0x7f2b03733650>
('h',)
<sqlite3.Cursor object at 0x7f2b03733650>
<sqlite3.Cursor object at 0x7f2b03733650>
('h',)
<sqlite3.Cursor object at 0x7f2b03733650>
<sqlite3.Cursor object at 0x7f2b03733650>
('h',)
<sqlite3.Cursor object at 0x7f2b03733650>
<sqlite3.Cursor object at 0x7f2b03733650>
('h',)
正如您在上面看到的,它似乎只包含h 字符,而不是hello 中的其余字符
【问题讨论】:
-
在我看来,您似乎为
for循环中的每次迭代执行了一个新的选择查询,并且始终打印该查询的第一个返回行。尝试将for循环和选择光标循环分开
标签: sql python-3.x database sqlite