HT
Inserir dados vários dados em uma tabela com o ID de outra.
Tenho 2 tabelas onde eu insiro um cabeçalho em uma delas, depois pego o ID para poder adicionar vários valores em outra tabela. Quando é inserido o primeiro item, o segundo gerar um erro de sql onde vejo que o sistema tenta atualizar e não inserir o segundo valor.
segue código:
segue código:
- <?php
- $pocom = new POCOM;
- $pocom->Id_PolCom = $pocom->getLastID() + 1;
- $pocom->Cod_PolCom = $data->nome;
- $pocom->Des_Detalhada = $descricao;
- $pocom->Dat_Cadastro = DATE('Y-m-d');
- $pocom->Dat_Inicio = $data->dataInicio;
- $pocom->store();
- $id = $pocom->Id_PolCom;
- foreach ($politicas as $politica)
- {
-
- $opcoes = explode(";",$politica);
-
- $item = new PCXPR;
- $item->Id_PolCom = $pocom->Id_PolCom;
- $item->Cod_Produt = $opcoes[0];
- $item->Qtd_Minimo = $opcoes[1];
- $item->Per_Descon = $opcoes[2];
- $item->Qtd_Min2 = $opcoes[3];
- $item->Per_Dsc2 = $opcoes[4];
- $item->Qtd_Min3 = $opcoes[5];
- $item->Per_Dsc3 = $opcoes[6];
- $item->store();
- unset($item);
-
- }
- ?>
Habilite os logs e poste aqui o resultado:
Outra coisa, a parte abaixo é desnecessária, pois a função store sempre preenche o atributo correspondente a chave primária de forma automática:
Obrigado pela diga com o ID.
No o log informa que o primeiro ele insere, já os demais ele tenta atualizar.
Id_Polcom é a chave primária das 2 tabelas? Imagino que na tabela PCXPR essa coluna deva ser uma chave estrangeira para a tabela POCOM. Nesse caso você deveria ter outra coluna como chave primária na tabela PCXPR. Se já houver outra coluna no banco de dados verifique seu model PCXPR, pois a constante PRIMARYKEY deve estar apontando erroneamente para Id_Polcom.
tenho uma tabela que não tem chave, com os campos cod_produto, lote e quantidade. Quando tento inserir um objeto que tem o mesmo código, o sistema tenta atualizar esse objeto, fazendo com que os demais sobrescreva. O que tenho que fazer para que isso não ocorra?.