Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite pessoal,
vou explicar o que estou fazendo e está acontecendo para entenderem meu caso.
No lado do PHP está recendo um array com registros que serao inseridos em uma tabela no banco por exemplo:
codigo (auto-increment)
codproduto
qtde
Enviando por exemplo os seguntes registros que estao em um array:
Registro 1
codproduto = 23
qtde = 15
Registro 2
codproduto = 15
qtde = 2
Registro 3
codproduto = 23
qtde = 7
entao no PHP eu faco um while e dentro desse while eu faco uma consulta SQL para verificar se ja existe registro no banco com o codproduto informando, se existir ele faz um update, se nao, um insert.
Pórem usando transacao, begin e commit ele está retornando um erro de primary key duplicada.
Pelo que entendi e analizei nos retornos do codigo, quando o registro nao existe ainda no banco, e você dentro do array tem por exemplo dois codproduto iguais que serao inseridos em momentos separados, onde 1 seria um INSERT por ainda nao existir e o SEGUNDO um UPDATE pelo primeiro ja ter inserido e agora EXISTIR ele retorna esse erro.
a consulta no banco pelo registro ja existente dentro do PHP na insercao do segundo registro com o mesmo codproduto nao identifica a insercao do primeiro, mas a transacao sim e acontece este erro.
Sei que ficou meio confuso, mas quem ja passou por isso vai entender! O problema é estranho e confuso mesmo.
Se alguem souber como resolver isso, agradeço mtooo!
abraço
Carregando comentários...