PDO - ERRO DE INSERT - CHAVE COMPOSTA

1. PDO - ERRO DE INSERT - CHAVE COMPOSTA

Paulo
henbran

(usa Debian)

Enviado em 18/03/2010 - 11:18h

MONTEI UMA CLASSE ÓTIMA (pelo menos até agora) CLASSE PARA PROCEDIMENTOS DE INCLUSÃO / ALTERAÇÃO / EXCLUSÃO / PESQUISA DE REGISTROS E A USO FAZ UM ANO. AGORA ME DEPAREI COM UM ERRO QUANDO FUI USAR ESSA CLASSE EM UM BANCO DE DADOS ONDE HÁ UMA TABELA COM CHAVE COMPOSTA. GERA UM ERRO ...

????????????????????????????????????????????????????????????????????????
Código: 23000Mensagem SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '2-9' for key 'PRIMARY'
????????????????????????????????????????????????????????????????????????
POSTAREI AQUI A CLASSE COMPLETA (confesso que ainda se muito a melhorar, porém já atende parte da minha demanda) ... PODEM USAR A VONTADE, PORÉM POR FAVOR, QUEM PUDER, ME AJUDEM A RESOLVER ISSO ...
....................................................................
OBS: A mesma string sql (de inclusão) enviada a essa classe, funciona normalmente direto no client do phpmyadmin.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

<?php
require_once("conexao_pdo.php");
class cmd_SQL {
public $xml;
//||||||||||||| COMANDOS DE SQL PARA OPERAÇÕES BÁSICAS |||||||||||||||||||||
//++++++++++++++++++++++++++ PESQUISAR ++++++++++++++++++++++++++
public function pesquisar($sql) { // inicio do function PESQUISAR
if (!$con) {
$banco = new Banco();
$con = $banco->conectar($db);
}
if ($con) {
try {
$rs = $con->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$rs->execute(); //executa a instrução sql
$retorno[n_reg] = $rs->rowCount();
$retorno[n_cols] = $rs->columnCount();
if (($retorno[n_reg])>0) {
$retorno[res]=$rs->fetchAll(PDO::FETCH_ASSOC); //Retorna todas as linhas (registros) como um array
}
else {
//Mensagem alertando que não econtrou registros
$retorno[msg] .= "Registro(s) não encontrado(s).";
}
}
catch (Exception $e) {
$retorno[msg] .= "\nErro: Código: " . $e->getCode() . "Mensagem " . $e->getMessage();
}
}
return $retorno;
} // fim do function PESQUISAR
//++++++++++++++++++++++++++ INCLUIR ++++++++++++++++++++++++++
public function incluir($sql) {
if (!$con) {
$banco = new Banco();
$con = $banco->conectar($db);
}
if ($con) {
try {
$res = $con->prepare($sql);
$res->execute();
$retorno[msg] = 'Registro salvo com sucesso!';
return $retorno;
}
catch (Exception $e) {
$retorno[msg] = "Erro de inclusão: Código: " . $e->getCode() . "Mensagem " . $e->getMessage();
return $retorno;
}
}
$con=null;
}
//++++++++++++++++++++++++++ ALTERAR ++++++++++++++++++++++++++
public function alterar($sql) {
if (!$con) {
$banco = new Banco();
$con = $banco->conectar($db);
}
if ($con) {
try {
$res = $con->prepare($sql);
$res->execute();
$retorno[msg] = 'Registro alterado com sucesso!';
}
catch (Exception $e) {
$retorno[msg] = "Erro: Código: " . $e->getCode() . "Mensagem " . $e->getMessage();
}
}
return $retorno;
}
//++++++++++++++++++++++++++ EXCLUIR ++++++++++++++++++++++++++
public function excluir($sql) {
if (!$con) {
$banco = new Banco();
$con = $banco->conectar($db);
}
if ($con) {
try {
$res = $con->prepare($sql);
$res->execute();
$retorno[msg] = 'Registro alterado com sucesso!';
}
catch (Exception $e) {
$retorno[msg] = "Erro: Código: " . $e->getCode() . "Mensagem " . $e->getMessage();
}
}
return $retorno;
}
}
?>



CONEXÃO COM O BANCO
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>




  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts