python参数化查询
时间: 2023-07-28 17:48:44 浏览: 222
Python参数化查询是一种安全的数据库查询方式,可以防止SQL注入攻击。参数化查询方式是将SQL语句和需要查询的参数分开处理,避免了将用户输入的参数和SQL语句混合拼接的情况,从而保证了查询的安全性。
在Python中,使用参数化查询可以通过数据库连接对象的 `execute()` 方法实现。例如,在使用MySQL数据库时,可以使用下面的方式来实现参数化查询:
```
import mysql.connector
# 连接数据库
db = mysql.connector.connect(
host="localhost",
user="username",
password="password",
database="mydatabase"
)
# 获取游标
cursor = db.cursor()
# 定义参数化查询语句
sql = "SELECT * FROM customers WHERE address = %s"
# 定义查询参数
adr = ("Park Lane 38", )
# 执行查询
cursor.execute(sql, adr)
# 获取查询结果
result = cursor.fetchall()
# 输出查询结果
for row in result:
print(row)
```
在上面的代码中,参数化查询语句 `SELECT * FROM customers WHERE address = %s` 中的 `%s` 表示一个占位符,用于接收查询参数。在执行 `cursor.execute(sql, adr)` 时,会将查询参数 `adr` 传递给SQL语句中的占位符 `%s`。这样,即使查询参数中包含恶意代码也不会对查询造成影响,从而保证了查询的安全性。
阅读全文