Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python mysql delete语句不工作_Python_Sql_Transactional - Fatal编程技术网

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”或“真”-<代码>