Py学习  »  DATABASE

如何修复“mysqlconnection”对象没有“escape\u string”属性

Hosnee Zaman • 6 年前 • 2874 次点击  

我是python新手。以前我在mysql中使用php;现在学习python。现在,我正在学习使用mysql。

我已使用下面的代码连接到数据库:

import mysql.connector

cnx = mysql.connector.connect(user="myUser", password="myPass", host="localhost", database="myDb")

连接似乎正常工作,我可以使用“光标”从数据库查询项目:

sql = "SELECT * FROM..."

cnx.cursor.execute(sql)

问题是,当我使用如下连接的“escape_string”方法时:

escaped_string = cnx.escape_string("some SQL invalid 'terms'")

我得到:

AttributeError: 'MySQLConnection' object has no attribute 'escape_string'.

我认为这是一个与mysql_连接器相关的bug,所以我认为更新可能会有帮助。

pip install --upgrade mysql_connector

这更新了mysql_连接器,但没有解决问题。

我在用 Python 3.7.1 mysql_连接器2.1.6

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/43852
文章 [ 1 ]  |  最新文章 6 年前
Ali
Reply   •   1 楼
Ali    7 年前

我不知道为什么会发生这样的事,但是你可以创造你自己。 escape_string 使用python。 不要这样做:

sql = "INSERT INTO TABLE_A (COL_A,COL_B) VALUES (%s, %s)" % (val1, val2)
cursor.execute(sql)

做:

sql = "INSERT INTO TABLE_A (COL_A,COL_B) VALUES (%s, %s)"
cursor.execute(sql, (val1, val2))

你可以遵循这些链接来找到更多的解决方案: Escape string Python for MySQL Escape string Python for MySQL _ Stack overflow