Oi Leandro, tudo bom?
Isso está mais relacionado ao MySql do que ao PHP.
O que acontece é que, para inserir um valor no banco, precisamos seguir a seguinte sintaxe:
$query = "insert into produtos (nome, preco) values ('Carro', '9000')";
Primeiro definimos os campos depois definimos os valores. No caso de não passarmos valor algum:
$query = "insert into produtos (nome, preco) values ('Carro', '')";
É identificado como um campo com valor vazio. Mas, se não houver as aspas:
$query = "insert into produtos (nome, preco) values ('Carro', )";
Será identificado como a falta de um argumento. A gente precisa passar algum valor, nem que seja vazio. Ou, caso o campo não seja obrigatório, podemos não definir o preco:
$query = "insert into produtos (nome) values ('Carro')";
Assim, a quantidade de parametros não será um problema =)
Uma outra possibilidade, caso o campo não seja obrigatório é passar null:
$query = "insert into produtos (nome, preco) values ('Carro', null)";
Espero ter ajudado =)
Qualquer dificuldade, compartilha com a gente!
Abraço e bons estudos.