我在Python3.4.3中使用mysqlclient (用于python3的叉),根据我在网上看到的内容(Escape string Python for MySQL),MySQLdb Python查询应该像这样编写,以便进行适当的转义:
query = self.conn.cursor()
query.execute('SELECT 1 FROM servers WHERE ip=%s AND port=%s AND game_id=%s' ,(ip,port,gameid))不幸的是,当我这样做时,我会得到以下错误:
%:‘字节’和'tuple‘mysqldb不支持的操作数类型
这似乎有效,但这可能导致SQL注入吗?
query = self.conn.cursor()
query.execute("SELECT 1 FROM servers WHERE ip='%s' AND port=%s AND game_id='%s'" % (ip,port,gameid))那么,如何使用首选语法方法安全地使上面的查询工作,该方法将在Python3.4.3中为我转义所有这些?
发布于 2019-03-23 04:44:36
我无法让mysqlclient (MySQLdb的一个分支) https://pypi.org/project/mysqlclient/用正确的https://pypi.org/project/mysqlclient/语法(为您转义一切的语法)使用Python3.4。我切换到mysql-连接器,相同的查询代码现在运行良好。看起来像是mysqlclient中的一个bug。
pip3 install mysql-connector-python发布于 2019-03-23 04:53:57
mysqlclient不再支持Python3.4。使用更新的Python。
https://stackoverflow.com/questions/55305236
复制相似问题