【发布时间】:2018-09-19 10:39:07
【问题描述】:
我正在慢慢失去理智。当我使用 input() 中的字符串时,我终生无法弄清楚为什么我无法让这个更新语句工作。第一部分工作正常:
table_name = 'ARCHIVE_BOXES'
column_name = 'status'
id_column = 'id'
c.execute("UPDATE {tn} SET {cn}=('reading') WHERE {idf}=(566)".
format(tn=table_name, cn=column_name, idf=id_column))
conn.commit()
但事实并非如此,而且我已经把头撞到墙上两天了:
table_name = 'ARCHIVE_BOXES'
column_name = 'status'
id_column = 'id'
pk = ''
while not pk:
pk = input()
pk = ("(" + pk + ")")
primary_key = pk
ns = ''
while not ns:
ns = input()
new_status = ("\'" + ns + "\'")
new_status = ("(" + new_status + ")")
print("new_status: " + new_status)
c.execute("""
UPDATE
{tn}
SET
{cn} = ?
WHERE
{idf} = ?""".
format(tn=table_name, cn=column_name, idf=id_column),
(new_status, primary_key))
conn.commit()
我也尝试过以这种方式执行更新语句,结果相同:
c.execute("UPDATE {tn} SET {cn}={ns} WHERE {idf}={idn}".
format(tn=table_name, cn=column_name2, idf=id_column,
ns=new_status, idn=primary_key))
很像this question,它不会抛出错误——只是完全忽略它。
【问题讨论】:
-
如果您尝试简单地打印
"UPDATE {tn} SET {cn}={ns} WHERE {idf}={idn}".format(tn=table_name, cn=column_name2, idf=id_column, ns=new_status, idn=primary_key),它看起来应该吗?
标签: python python-3.x sqlite sql-update