В приложении, которое я создаю, пользователь может ввести имя БД, к которой он хочет подключиться, и код соединит пользователя с ним.
Я пытаюсь предотвратить любой MySQLинъекция в этот очень простой запрос, и он пытался сделать это, используя следующее: cursor.execute("USE %s;", (dbName,))
Получил оператор этого типа по следующей ссылке: Лучшая практика Python и безопасный способ подключения к MySQL и выполнениязапросы
Однако он не подключается к БД. Вместо этого if выдаст мне следующую ошибку:
1064 (42000): у вас есть ошибка в синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы узнать правильный синтаксис для использования рядом с '' my_db_name '' в строке 1
Когда я выполняю быструю и грязную конкатенацию, он подключается просто отлично: cursor.execute("USE " + dbName)
Разве нельзя использовать этот тип предотвращения SQL-инъекций, когда SQL не является запросом? Это работает только при вставке параметров в оператор SELECT? Как мне поступить?
Я действительно извиняюсь, если это глупый вопрос. Я очень новый в Python и значительно новый в SQL в целом.