MySQL Query

COLD_WAR

Power Member
Ando aqui ás voltas com o MySQl, pq qd tento inserir o array na db, qd o número de campos da db não coincide com o número de campos do array, dá-me este erro:
"Column count doesn't match value count at row 1"
Visto que o número de campos do array não é fixo, varia conforme as situações, pq é que o MySQL não borrifa nisso e deixa o campo vazio como devia fazer?
 
Melhora a logica do insert.
Ou insere todos os campos na tabela para nao haver "falta"

Não é o MySQL que se tem que adaptar a ti, é o contrario.
 
Só agora é que vi este post

Quando fazes um insert, deves usar sempre a estrurura INSERT INTO table (campo1, campo2, campo3) VALUES (valor1, valor2, valor3)

Se queres deixar o campo a null na mesma com o Insert tens 2 hipóteses:

1ª - nao "nomeias" o campo no insert statement
ex: INSERT INTO tabela (campo1, campo3) VALUES (valor1, valor3)

2ª - explicitamente dizes que queres inserir o valor NULL
ex: INSERT INTO tabela (campo1, campo2, campo3) VALUES(valor1, NULL, valor3)


No teu caso do lado do código, qd estás a construir dinamicamente o statement de sql, so tens de testar se o valor que está no array é nulo ou não - e ou vais criando a parte da declaracao dos campos depois de verificares se o valor é nuno ou não, ou fazes logo o insert com os campos todos e atribuis o valor NULL no SQL

Se tiver sido confusa, avisa
 
completando o que disse Ophelia, se um dos campos estiver com NOT NULL, ou seja a não permitir NULL tens de introduzir nem que seja um espaço, nesse campo.
 
Não procures é o livro no eMule, vai à Amazon... Don't follow the dark path.

Nada como ter um livro na mão, ando a ler um agora de PHP e mySQL bastante bom. :)
 
Back
Topo