提问者:小点点

PymySQL的问题。 尝试在SELECT子句中使用字符串


我正在使用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文档,但失败了。


共1个答案

匿名用户

您可以尝试在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注入!