#python #mysql #sql
#python #mysql #sql
Вопрос:
Я работаю над файлами Excel и хранением базы данных, точнее, я храню данные Excel в базе данных MySQL. В какой-то момент я выполняю этот запрос:
query_for_id = ''' SELECT id FROM attivita WHERE attivita = '{0}' '''.format(attivita)
И когда я печатаю результат запроса, я получаю это:
‘ ВЫБЕРИТЕ идентификатор ИЗ attivita, ГДЕ attivita = \’Manutenzione \’ ‘
Когда он пытается сопоставить ‘attivita’ с правильным значением, взятым из Excel, я получил ошибки из-за ‘\’.
Я попытался изменить тройные кавычки с » » » на » ‘ «, а также использовать connection.escape_string()
, но я не решил проблему. Кто-нибудь может помочь мне разобраться в проблеме? Заранее благодарю вас.
Ответ №1:
Я думаю, что в вашем случае лучше использовать аргументы для выполнения
query_for_id = ''' SELECT id FROM attivita WHERE attivita = %(attivita)s '''
cursor.execute(query_for_id, { 'attivita': attivita })
https://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlcursor-execute.html