如何使用APSW更新字段

2024-04-27 08:15:22 发布

您现在位置:Python中文网/ 问答频道 /正文

当我使用数据库条目时,我试图更新它的时间戳,但我似乎无法使update语句正常工作

    import apsw
    from datetime import datetime

    def updateTimestamp(primary, timestamp):
        tableName = 'Images'

        connection = apsw.Connection('Images')
        cursor = connection.cursor()

        sql = "UPDATE %s SET timestamp = %s WHERE id = %s" %(tableName, timestamp, primary)
        print "ok so far"
        cursor.execute(sql)

        if connection:
            connection.close()

    currentTime = datetime.now()
    #remove spaces from timestamp
    currentTime = str(currentTime).replace(' ', '')
    updateTimestamp(1, currentTime)

我正在使用apsw尝试更新一个字段,但它不起作用,我得到了错误

^{pr2}$

我的桌子看起来像:

sql = 'CREATE TABLE IF NOT EXISTS ' + tableName + '(id INTEGER PRIMARY KEY 
    AUTOINCREMENT, Name TEXT, Metadata TEXT, Mods TEXT, Certification TEXT, 
    Product TEXT, Email TEXT, notes TEXT, timestamp TEXT, ftpLink TEXT)'

Tags: textfromimportidsqldatetimeconnectioncursor
1条回答
网友
1楼 · 发布于 2024-04-27 08:15:22

您正在构建如下SQL命令:

UPDATE Images SET timestamp = 2013-01-3121:59:00.427408 WHERE id = 1

正确的语法应该是这样的:

^{pr2}$

但是,为了避免字符串格式问题,您应该使用参数:

sql = "UPDATE %s SET timestamp = ? WHERE id = ?" % (tableName)
cursor.execute(sql, (timestamp, primary))

相关问题 更多 >