-3

我试图模仿集体智能的代码之一,但由于一些未知的错误而跌跌撞撞。除了用于检索查询的方法外,所有方法在类中都可以正常工作。

class Connect:
  # Create the Database
    def __init__(self,dbname):
        self.con = sqlite3.connect(dbname)
  # Add the row
    def create(self,date,name,age):
        self.con.execute('create table Profile(date text, name text,age real)')
  # Lock the changes
    def commit(self):
        self.con.commit()
  # Retrive the details
    def getentry(self,table,field,value):
        cursor = self.con.execute(
                     "select * from %s where %s = '%s'" % (table,field,value))
        result_set = cursor.fetchall()
        print result_set

工作示例:

  1. 创建数据库

C = 连接('test.db')

  1. 添加行

C.create('2013-03-06','Joy',34)

  1. 进行更改并锁定文件

C.commit()

  1. 获取行

C.getentry(个人资料,姓名,'Joy')

错误:NameError:未定义名称“配置文件”

然后加上括号。

C.getentry('个人资料','姓名','Joy')

结果 = [ ]

4

1 回答 1

1

问题出在Connect.create. 它创建表但不填充它,因为其定义上方的注释似乎暗示。您需要将其更新为以下内容:

def create(self,date,name,age):
    self.con.execute( 'create table Profile(date text, name text,age real)' )
    self.con.execute( "insert into Profile values('{0}','{1}','{2}')"
                      .format(date,name,age) )
    return
于 2013-03-07T23:37:09.793 回答