Теперь я пытаюсь прочитать sth из базы данных параметризованным запросом. Чтобы избежать внедрения SQL, я написал код следующим образом:
param = 'Peter'
column_name = 'employee.name'
table_name = 'employee'
param_query = 'SELECT * FROM %s WHERE %s = %s'
# Return outcome
cur.execute(param_query, [table_name, column_name, param])
outcome = cur.fetchall()
print(outcome)
И я получил следующую ошибку:
psycopg2.errors.SyntaxError: syntax error at or near "'employee'"
LINE 1: SELECT * FROM 'employee' WHERE 'employee.name' = 'Peter'
Как новичок в программировании баз данных, я хочу спросить :
- Как я могу избавиться от этих цитат из запроса? Или я здесь ошибаюсь?
- Это хорошая практика для предотвращения SQL инъекций? Или это хорошая практика для написания параметризованного запроса вроде этого?
Заранее благодарим за вашу помощь!