Para inserir valores nulos no banco de dados, você tem duas opções:
- omitir esse campo de sua instrução INSERT ou
- use
None
Além disso:Para se proteger contra injeção de SQL, você não deve usar a interpolação de string normal para suas consultas.
Você deve passar dois (2) argumentos para
execute()
, por exemplo.:mycursor.execute("""INSERT INTO products
(city_id, product_id, quantity, price)
VALUES (%s, %s, %s, %s)""",
(city_id, product_id, quantity, price))
Alternativa nº 2:
user_id = None
mycursor.execute("""INSERT INTO products
(user_id, city_id, product_id, quantity, price)
VALUES (%s, %s, %s, %s, %s)""",
(user_id, city_id, product_id, quantity, price))