0
SQL Query:
INSERT INTO tributos_prod (codigo, ncm, Descricao, preco, quantidade, v_total, situacao_trib_icms, origem_trib_icms, aliquota_icms, credito_icms, situacao_trib_pis, valor_base_pis, aliquota_pis, valor_pis, situacao_trib_cofins, valor_base_cofins, aliquota_cofins, valor_cofins, aliquota_interestadual, percent_prov_part, icms_part_uf_dest, icms_part_uf_rmt, icms_fcp_uf_dest, id_nfe) VALUES(:codigo, :ncm, :Descricao, :preco, :quantidade, :v_total, :situacao_trib_icms, :origem_trib_icms, :aliquota_icms, :credito_icms, :situaca_trib_pis, :valor_base_pis, :aliquota_pis, :valor_pis, :situaca_trib_cofins, :valor_base_cofins, :aliquota_cofins, :valor_cofins, :aliquota_interestadual, :percent_prov_part, :icms_part_uf_dest, :icms_part_uf_rmt, :icms_fcp_uf_dest, :id_nfe)
try {
$query = $conecta->prepare($sql);
$query->bindValue(':codigo',$codigo,PDO::PARAM_STR);
$query->bindValue(':ncm',$ncm,PDO::PARAM_STR);
$query->bindValue(':descricao',$descricao,PDO::PARAM_STR);
$query->bindValue(':preco',$preco,PDO::PARAM_STR);
$query->bindValue(':quantidade',$quantidade,PDO::PARAM_STR);
$query->bindValue(':v_total',$v_total,PDO::PARAM_STR);
$query->bindValue(':situacao_trib_icms',$situacao_trib_icms,PDO::PARAM_STR);
$query->bindValue(':origem_trib_icms',$origem_trib_icms,PDO::PARAM_STR);
$query->bindValue(':aliquota_icms',$aliquota_icms,PDO::PARAM_STR);
$query->bindValue(':credito_icms',$credito_icms,PDO::PARAM_STR);
$query->bindValue(':situacao_trib_pis',$situacao_trib_pis,PDO::PARAM_STR);
$query->bindValue(':valor_base_pis',$valor_base_pis,PDO::PARAM_STR);
$query->bindValue(':aliquota_pis',$aliquota_pis,PDO::PARAM_STR);
$query->bindValue(':valor_pis',$valor_pis,PDO::PARAM_STR);
$query->bindValue(':situacao_trib_cofins',$situacao_trib_cofins,PDO::PARAM_STR);
$query->bindValue(':valor_base_cofins',$valor_base_cofins,PDO::PARAM_STR);
$query->bindValue(':aliquota_cofins',$aliquota_cofins,PDO::PARAM_STR);
$query->bindValue(':valor_cofins',$valor_cofins,PDO::PARAM_STR);
$query->bindValue(':aliquota_interestadual',$aliquota_interestadual,PDO::PARAM_STR);
$query->bindValue(':percent_prov_part',$percent_prov_part,PDO::PARAM_STR);
$query->bindValue(':icms_part_uf_dest',$icms_part_uf_dest,PDO::PARAM_STR);
$query->bindValue(':icms_part_uf_rmt',$icms_part_uf_rmt,PDO::PARAM_STR);
$query->bindValue(':icms_fcp_uf_dest',$icms_fcp_uf_dest,PDO::PARAM_STR);
$query->bindValue(':id_nfe',$nNFe,PDO::PARAM_INT);
$query->execute();
}catch(PDOExcepetion $erro){
echo -1;
}
SQL structure tributos_prod
:
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_nfe` int(11) NOT NULL,
`codigo` varchar(255) DEFAULT NULL,
`ncm` varchar(255) DEFAULT NULL,
`descricao` varchar(255) DEFAULT NULL,
`preco` varchar(255) DEFAULT NULL,
`v_total` varchar(255) DEFAULT NULL,
`quantidade` varchar(255) DEFAULT NULL,
`situacao_trib_icms` varchar(255) DEFAULT NULL,
`origem_trib_icms` varchar(255) DEFAULT NULL,
`aliquota_icms` varchar(255) DEFAULT NULL,
`credito_icms` varchar(255) DEFAULT NULL,
`situacao_trib_pis` varchar(255) DEFAULT NULL,
`valor_base_pis` varchar(255) DEFAULT NULL,
`aliquota_pis` varchar(255) DEFAULT NULL,
`valor_pis` varchar(255) DEFAULT NULL,
`situacao_trib_cofins` varchar(255) DEFAULT NULL,
`valor_base_cofins` varchar(255) DEFAULT NULL,
`aliquota_cofins` varchar(255) DEFAULT NULL,
`valor_cofins` varchar(255) DEFAULT NULL,
`aliquota_interestadual` varchar(255) DEFAULT NULL,
`percent_prov_part` varchar(255) DEFAULT NULL,
`icms_part_uf_dest` varchar(255) DEFAULT NULL,
`icms_part_uf_rmt` varchar(255) DEFAULT NULL,
`icms_fcp_uf_dest` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `fk_nfe` (`id_nfe`),
CONSTRAINT `fk_nfe` FOREIGN KEY (`id_nfe`) REFERENCES `nfe` (`id`)
SQL structure nfe
:
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_nfe` int(11) DEFAULT NULL,
`id_emitente` varchar(255) DEFAULT NULL,
`id_cliente` varchar(255) DEFAULT NULL,
`tipo_pessoa` varchar(255) DEFAULT NULL,
`n_cad` varchar(255) DEFAULT NULL,
`id_transportadora` varchar(255) DEFAULT NULL,
`situacao` varchar(255) DEFAULT NULL,
`ambiente` varchar(1) DEFAULT NULL,
`cfop` varchar(255) DEFAULT NULL,
`serie` int(3) DEFAULT NULL,
`data_emissao` varchar(255) DEFAULT NULL,
`data_saida_entrada` varchar(255) DEFAULT NULL,
`tipo_emissao` varchar(255) DEFAULT NULL,
`finalidade` varchar(255) DEFAULT NULL,
`cliente` varchar(255) DEFAULT NULL,
`uf_cliente` varchar(255) DEFAULT NULL,
`transportadora` varchar(255) DEFAULT NULL,
`metodo_pagamento` varchar(255) DEFAULT NULL,
`infs_fisco` varchar(255) DEFAULT NULL,
`infs_contribuinte` varchar(255) DEFAULT NULL,
`cuf` varchar(255) DEFAULT NULL,
`cnf` int(8) DEFAULT NULL,
`chave` varchar(255) DEFAULT NULL,
`recibo` varchar(255) DEFAULT NULL,
`protocolo` varchar(255) DEFAULT NULL,
`modalidade_frete` varchar(255) DEFAULT NULL,
`tipo_contribuinte` varchar(255) DEFAULT NULL,
`data_venda` varchar(255) DEFAULT NULL,
`itens` varchar(255) DEFAULT NULL,
`qt_itens` varchar(255) DEFAULT NULL,
`especie` varchar(255) DEFAULT NULL,
`qt_volumes` varchar(255) DEFAULT NULL,
`peso_liquido` varchar(255) DEFAULT NULL,
`peso_bruto` varchar(255) DEFAULT NULL,
`desconto` varchar(255) DEFAULT NULL,
`total` varchar(255) DEFAULT NULL,
`tipo_doc` varchar(255) DEFAULT NULL,
`tipo_impressao_danfe` varchar(255) DEFAULT NULL,
`cons_final` varchar(255) DEFAULT NULL,
`seq_evento` int(11) DEFAULT NULL,
`chaveReferenciada` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
Fatal error: Uncaught Exception 'Pdoexception' with message 'SQLSTATE[23000]: Integrity Constraint Violation: 1452 Cannot add or update a Child Row: a Foreign key Constraint fails (
bwdbwd_emissor_nfe
.tributos_prod
, CONSTRAINTfk_nfe
FOREIGN KEY (id_nfe
) REFERENCESnfe
(id
))'
-
Pdoexception: SQLSTATE[23000]: Integrity Constraint Violation: 1452 Cannot add or update a Child Row: a Foreign key Constraint fails (
bwdbwd_emissor_nfe
.tributos_prod
, CONSTRAINTfk_nfe
FOREIGN KEY (id_nfe
) REFERENCESnfe
(id
))
I tried to use in query
: :VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
Starting to generate the following error:
Pdoexception: SQLSTATE[HY093]: Invalid Parameter number: Parameter was not defined
The mistake
SQLSTATE[HY093]
usually falls in or you have more placeholders than values or otherwise have some name typed wrong. Already the main mistake (what you should focus on)SQLSTATE[23000]
the value inid_nfe
may not exist in the tablenfe
– rray
Hello @rray, exactly this rsrs'. I’m performing a
insert
for a value ofid_nfe
that does not exist in the tablenfe
. Thank you.– lucasbento
Not directly related to the error, but consider making the Binds with an array and
for
, that this code becomes difficult to maintain.– Isac