Problema com actualização de Tabela no MySQL

kronozord

Suspenso
Recebo regularmente um ficheiro CSV com uma lista de funcionario de uma dada empresa.
Tenho que fazer parsing do ficheiro, inserir os novos funcionarios, e actualizar os dados antigos.
Quando insiro pela primeira vez os funcionarios na tabela corre tudo muito bem, mas quando tenho de actualizar as coisa já nao funcionam direito. Por isso experimentei as 3 querys seguintes:

INSERT INTO funcionarios (nif,nome,zona) VALUES (?,?,?) ON DUPLICATE KEY UPDATE zona=?
INSERT INTO funcionarios (nif,nome,zona) VALUES (?,?,?) ON DUPLICATE KEY UPDATE zona=VALUES(zona)
REPLACE INTO funcionarios (nif,nome,zona) VALUES (?,?,?)

O nif serve de chave primaria, por isso o ON DUPLICATE KEY deveria resultar mas não funciona, apenas a ultima query.
O problema é que eu não quero usar o REPLACE porque este apaga o row antigo, e também não quero fazer querys para testar se o row com o nif=xxxxx já existe de depois fazer UPDATE.
Alguem me explica porque é que não funciona?


P.S. Estou a usar prepared statements em PHP com o XAMPP 1.7.7
 
Última edição:
Assim é difícil perceber o problema. Eu não percebo nada de PHP, mas podes pôr aqui o código para ver se alguém te pode ajudar.

Se ainda não tiveres visto, pode ser que encontres alguma pista nos logs do myqsl e do apache.
 
Back
Topo