Axl*_*Max 5 python database sqlite sql-update
有没有办法在一条指令中完成这两个更新?
cur.execute("UPDATE table_name1 SET email = 'foo@bar.com' WHERE id = 4")
cur.execute("UPDATE table_name1 SET phone = '0400-123-456' WHERE id = 4")
Run Code Online (Sandbox Code Playgroud)
我尝试了各种变体,但无法使其正常工作。
编辑:我想传递电子邮件、电话和我作为参数。
你的解决方案让你接受 SQL 注入。如果您阅读了文档的第一部分,它会明确指出不要按照您提议的方式进行操作:
symbol = 'RHAT'
c.execute("SELECT * FROM stocks WHERE symbol = '%s'" % symbol)
Run Code Online (Sandbox Code Playgroud)
t = ('RHAT',)
c.execute('SELECT * FROM stocks WHERE symbol=?', t)
Run Code Online (Sandbox Code Playgroud)
因此,您应该将代码更改为以下几行:
conn = sqlite3.connect('connex.db')
cur = conn.cursor()
mobileval = '0400-123-456'
emailval = 'foo@bar.com'
constrain = 4
q = "UPDATE licontacts310317 SET (?, ?)
WHERE (?)=(?)"
cur.execute(q, (liemailval, limobileval, id, constrain) )
conn.commit()
conn.close()
Run Code Online (Sandbox Code Playgroud)
我还没有测试过,但希望你能明白=)
小智 5
以下工作:在这一点上它只是标准的 SQL。
cur.execute("""UPDATE table_name1
SET email = 'foo@bar.com', phone = '0400-123-456'
WHERE id = 4""")
Run Code Online (Sandbox Code Playgroud)