我正在使用Python3.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注入!