我使用python2创建一个sqlite数据库,当我想运行一个sql请求select时,它只显示表的第一行。
try:
con = lite.connect('deko.db')
c = con.cursor()
c.execute(" CREATE TABLE IF NOT EXISTS disas(NAME varchar(20),STADDR INTEGER,SIZE INTEGER, DUMP varchar(10000) )")
# c.execute("INSERT INTO disas VALUES ('"+function['name']+"', "+str(function['offset'])+", "+str(function['size'])+", '"+str(r2.cmd("p8" +" "+ str(function["size"])+ " @ " + function["name"] ))+"')")
sql = "INSERT INTO disas VALUES ('{name}','{addr}','{size}', '{dump}')".format(
name=function['name'],
addr=function['offset'],
size=function["size"],
dump=r2.cmd("p8" +" "+ str(function["size"])+ " @ " + function["name"] ))
c.execute(sql)
con.commit()
except lite.Error, e:
if con:
con.rollback()
print "Error %s:" % e.args[0]
sys.exit(1)
finally:
if con:
c.close()
con.close()
try:
c = lite.connect('deko.db')
cur = c.cursor()
cur.execute("SELECT * FROM disas")
dataa = cur.fetchone()
print dataa
c.commit()
except lite.Error, e:
if c:
c.rollback()
print "Error %s:" % e.args[0]
sys.exit(1)
finally:
if c:
cur.close()
c.close()
这是输出,只显示表格的第一行
(u'sym._init', 4195272, 26, u'4883ec08488b05a50520004885c07405e8530000004883c408c3')
答案 0 :(得分:-1)
如果你有小桌子,那么 fetchall()方法是好的,但是如果你有一个大桌子的fetchall,你应该使用 fetchmany()方法。这总是一个很好的做法。你应该参考以下链接,这可能对你有所帮助。 http://www.mysqltutorial.org/python-mysql-query/