Как вставить значения переменных в запрос на запись в базу данных 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)

→ Ссылка