python mysql delete语句不工作
在这里,我试图删除任何在他们的电子邮件/用户名中包含“的用户python mysql delete语句不工作,python,sql,transactional,Python,Sql,Transactional,在这里,我试图删除任何在他们的电子邮件/用户名中包含“的用户 def removeQuote(self, tbl,record): """ Updates the record """ statmt="select id from %s WHERE `email` LIKE '%%\"%%'" % (tbl) self.cursor.execute(statmt) rows=list(self
def removeQuote(self, tbl,record):
""" Updates the record """
statmt="select id from %s WHERE `email` LIKE '%%\"%%'" % (tbl)
self.cursor.execute(statmt)
rows=list(self.cursor.fetchall())
for idx, val in enumerate(rows):
id= val[0]
delstatmt = "DELETE FROM `maillist_subscription` WHERE id = '%s'" % id
print delstatmt
self.cursor.execute(delstatmt)
此操作的输出显示操作已成功完成,但记录仍保留在数据库中。
输出还显示正确的mysql语句:
DELETE FROM `maillist_subscription` WHERE id = '8288754'
感谢您的帮助!您需要使用connection对象上的commit()方法提交更改。大多数DBAPI接口使用隐式事务 另外,不要在SQL查询生成中使用字符串格式!这会使您面临SQL注入: 不安全!!
#如果id=“1”;删除数据库“?
delstatmt=“从`邮件列表\订阅'中删除,其中id='%s'”(id,)
cursor.execute(delstatmt)
康涅狄格州提交
安全!
delstatmt=“从`maillist\u subscription`中删除,其中id=?”
cursor.execute(delstatmt,(id,))
康涅狄格州提交
游标。执行(“从邮件列表中删除订阅,其中id=”“+id+”))
CON.COMPIAL()/P>如果有人试图注入查询,如果在不安全的方法中没有用“代码> >多=真/代码>调用执行,客户端不会失败吗?@ USSUR6612总是以正确的方式执行,并且不允许任何人玩您的查询逻辑。请考虑上面的不安全方法,其中ID是代码> 123”或“真”-<代码>