python - pymysql 的问题。尝试在 SELECT 子句中使用字符串
问题描述
我正在使用 python 3.6.9 和 pymysql 库进行项目。基本上我试图在 SELECT 子句中使用字符串:
import pymysql;
def wypisywanie_z_bazy():
connection = pymysql.connect(host='localhost',
user='root',
password='',
db='dbprojekt',
charset='utf8mb4',
cursorclass=pymysql.cursors.SSDictCursor);#kursor bez bufora, wykorzystywany ze wzgledu na slabe dzialanie serwera (sugestia z dokumentacji technicznej)
try:
with connection.cursor() as cursor:
sql = "SELECT * FROM `%s`";
cursor.execute(sql,('Czlonek'));
result=cursor.fetchall();
print(result);
finally:
connection.close();
但是它不起作用。我也尝试过几种不同的方法,不幸的是它们都没有奏效。我怎样才能使这个条款起作用?我尝试查看 pymysql 文档,但失败了。
解决方案
您可以尝试在 select 子句中使用 f 字符串或格式字符串:
table = 'Czlonek'
try:
with connection.cursor as cursor:
sql = f"SELECT * FROM {table}"
cursor.execute(sql)
result = cursor.fetchall()
except Exception:
pass
finally:
你可能会接触到sql注入!
推荐阅读
- python - OneHot 编码一个完整的字符串数据帧
- mysql - 将已格式化的文本插入 mysql 表
- opencv - Opencv_traincascade numstages 与参数不匹配
- html - 为什么在邮件中发送时文本不居中?
- php - mysql+php中如何同时连接两个数据库
- java - 单击按钮时使所有文本框变为不可编辑
- javascript - Nodejs - 将属性上的承诺数组解析为对象数组
- ruby - 如何找到具有相同名称但不同代码的重复 Ruby 方法?
- python-3.x - Django - 类型错误;有多个参数值
- python - 如何使用子函数重新启动 Python 脚本