При обработке запросов базы данных в Python вам обычно нужно включать переменные в оператор запроса. Тем не менее, обязательно работайте таким образом, чтобы предотвратить синтаксические ошибки или уязвимости безопасности.
]рассмотрим следующий код Python:
]cursor.execute("INSERT INTO table VALUES var1, var2, var3")
]
В этом коде var1
является целым числом, var2
и var3
является строками. Однако, когда Python пытается включить имена var1
, var2
, и var3
как часть самого текста запроса, возникают проблемы, что приводит к признанию запроса.
Чтобы решить эту проблему, вы можете использовать механизм замены заполнителя, предоставленный API базы данных. Вот как переписать код, используя заполнители:
]cursor.execute("INSERT INTO table VALUES (%s, %s, %s)", (var1, var2, var3))
в этом улучшенном коде:
]%s
представляет заполнителя для заполнения значения. (var1, var2, var3)
это кортеж, содержащий значение, которое будет вставлено. , передавая значения в качестве кортежей, API базы данных обрабатывает необходимую переменную, выходящие и ссылки, обеспечивая совместимость с базой данных и предотвращая потенциальные риски безопасности.
]Обратите внимание, что для одного параметра требуется кортеж с запятыми запятыми:
cursor.execute("INSERT INTO table VALUES (%s)", (var1,))
]
Кроме того, избегайте использования оператора форматирования строки (%) для вставки переменных, поскольку это может привести к уязвимости безопасности, а API базы данных не поддерживает его.
]Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3