Как вставить значения переменных в запрос на запись в базу данных MYSQL в Python?
Не выходит передать переменную в MySQL. Код был списан с документации. https://dev.mysql.com/doc/connector-python/en/connector-python-example-cursor-transaction.html
add_unit2 = ("INSERT INTO unit "
"(unit_ip, unit_name, unit_mac) "
"VALUES (%(ip)s, %(name)s, %(mac)s)")
data_salary = {
'ip': ip,
'name': name,
'mac': mac,
}
cursor.execute(add_unit2, data_salary)
Ответы (2 шт):
Автор решения: Denis Rudnitskiy
→ Ссылка
Вы пытаетесь передать значения со словаря. Так как вы обращаетесь к словарю, то получите строку, а для sql-запроса с экранизацией нужно передать кортеж.
Используйте:
data_salary = (ip, name, mac)
Если нужно передать одно значение, например только ip, то это будет выглядеть так:
data_salary = (ip,).
Автор решения: rt_fan
→ Ссылка
Получилось передать через
add_unit = ("INSERT INTO unit " "(unit_ip, unit_name, unit_mac) " "VALUES ('%(ip)s', '%(name)s', '%(mac)s')" % {'ip': ip, 'name': name, 'mac': mac}) cursor.execute(add_unit)