and*_*geo 3 python sql sqlite parameterized-query
我正在将 sqlite3 模块与 Python 一起使用,并且到目前为止已经有了这段代码。在数据库中,我存储了每日天气状况,现在我需要我的代码用更新的数据替换一些行。该代码应该寻找datetime值等于的行new_data[0]。
我参数化查询的方式是错误的,但无法找出正确和最优雅的方法!
new_data = ['12 Mar 2014', 'sunny', 20, 12]
conn = sqlite3.connect(database_file)
c = conn.cursor()
c.execute("UPDATE weather SET datetime = ?, condition = ?, high = ?, low = ? WHERE datetime = %s" new_data, %new_data[0])
Run Code Online (Sandbox Code Playgroud)
您正在将参数化查询与字符串操作混合在一起。首先,这是非常不安全的,其次,您的语法出现了问题(您在查询字符串后遗漏了一个逗号)。试试这个:
new_data = ('12 Mar 2014', 'sunny', 20, 12, '12 Mar 2014',)
conn = sqlite3.connect(database_file)
c = conn.cursor()
c.execute("UPDATE weather SET datetime = ?, condition = ?, high = ?, low = ? WHERE datetime = ?", new_data)
Run Code Online (Sandbox Code Playgroud)
更多细节可以在这里找到:https : //docs.python.org/2/library/sqlite3.html
| 归档时间: |
|
| 查看次数: |
7746 次 |
| 最近记录: |