Rotina: executaSQL Erro 1062
boa tarde! Pessoal
alguém pode me ajudar a identificar onde esta o erro, e como solucionar ?
nao sei mais o que fazer....
>
INSERT INTO crm_usuarios (nome, email, login, senha, ativo, administrador, datacad) VALUES ('', '', '', '', '', '', '') Ocorreu um erro com os seguintes detalhes:
Arquivo: C:\wamp\www\paineladm\classes\banco.class.php
Rotina: executaSQL
Codigo: 1062
Mensagem:
meu codigo esta abaixo
<?php
require_once(dirname(__FILE__).'/autoload.php');
protegeArquivo(basename(__FILE__));
abstract class banco{
//propriedades
public $servidor = DBHOST;
public $usuario = DBUSER;
public $senha = DBPASS;
public $nomebanco = DBNAME;
public $conexao = NULL;
public $dataset = NULL;
public $linhasafetadas = -1;
//métodos
public function __construct() {
$this->conecta();
}//construct
public function __destruct() {
if ($this->conexao != NULL):
mysqli_close($this->conexao);
endif;
}//<destruct></destruct>
public function conecta() {
$this->conexao = mysqli_connect($this->servidor, $this->usuario, $this->senha, $this->nomebanco)
or die($this->trataerro(__FILE__, __FUNCTION__, mysqli_errno(), mysqli_error(), TRUE));
mysqli_query($this->conexao, "SET NAMES 'utf8'");
mysqli_query($this->conexao, "SET character_set_connection=utf8");
mysqli_query($this->conexao, "SET character_set_client=utf8");
mysqli_query($this->conexao, "SET character_set_results=utf8");
}//conecta
public function inserir($objeto) {
//insert into nome da tabela ($campo1, $campo2) values ($valor1, $valor2)
$sql = "INSERT INTO " . $objeto->tabela . " (";
for ($i = 0; $i < count($objeto->campos_valores); $i++):
$sql .= key($objeto->campos_valores);
if ($i < (count($objeto->campos_valores) - 1)):
$sql.= ", ";
else:
$sql .= ") ";
endif;
next($objeto->campos_valores);
endfor;
reset($objeto->campos_valores);
$sql .= "VALUES (";
for ($i=0; $i < count($objeto->campos_valores); $i++):
$sql .= is_numeric($objeto->campos_valores[key($objeto->campos_valores)]) ?
$objeto->campos_valores[key($objeto->campos_valores)] :
"'" . $objeto->campos_valores[key($objeto->campos_valores)] . "'";
if ($i < (count($objeto->campos_valores) - 1 )):
$sql .= ", ";
else:
$sql .=") ";
endif;
next($objeto->campos_valores);
endfor;
echo $sql; //Descomente só para testes
return $this->executaSQL($sql);
}//inserir
public function atualizar($objeto) {
//update nomedatabela set campo1=valor1, campo2=valor2 where campochave=valorchave
$sql = "UPDATE " . $objeto->tabela . " SET ";
for ($i = 0; $i < count($objeto->campos_valores); $i++):
$sql .= key($objeto->campos_valores) . "=";
$sql .= is_numeric($objeto->campos_valores[key($objeto->campos_valores)]) ?
$objeto->campos_valores[key($objeto->campos_valores)] :
"'" . $objeto->campos_valores[key($objeto->campos_valores)] . "'";
if ($i < (count($objeto->campos_valores) - 1)):
$sql .= ", ";
else:
$sql .= " ";
endif;
next($objeto->campos_valores);
endfor;
$sql .= "WHERE " . $objeto->campopk . "=";
$sql .= is_numeric($objeto->valorpk) ? $objeto->valorpk : "'" . $objeto->valorpk . "'";
echo $sql;
return $this->executaSQL($sql);
}//atualizar
public function deletar($objeto) {
$sql = "DELETE FROM " . $objeto->tabela;
$sql .= " WHERE " . $objeto->campopk . "=";
$sql .= is_numeric($objeto->valorpk) ? $objeto->valorpk : "'" . $objeto->valorpk . "'";
echo $sql;
return $this->executaSQL($sql);
}//deletar
public function selecionaTudo($objeto) {
$sql = "SELECT * FROM " . $objeto->tabela;
if ($objeto->extras_select != NULL):
$sql .=" " . $objeto->extras_select;
endif;
return $this->executaSQL($sql);
}//selecionaTudo
public function selecionaCampos($objeto) {
$sql = "SELECT ";
for ($i = 0; $i < count($objeto->campos_valores); $i++):
$sql .= key($objeto->campos_valores);
if ($i < (count($objeto->campos_valores) - 1)):
$sql .= ", ";
else:
$sql .= " ";
endif;
next($objeto->campos_valores);
endfor;
$sql .= " FROM " . $objeto->tabela;
if ($objeto->extras_select != NULL):
$sql .=" " . $objeto->extras_select;
endif;
return $this->executaSQL($sql);
}//selecionaCampos
public function executaSQL($sql = NULL) {
if ($sql != NULL):
$query = mysqli_query($this->conexao, $sql) or $this->trataerro(__FILE__, __FUNCTION__);
$this->linhasafetadas = mysqli_affected_rows($this->conexao);
if (substr(trim(strtolower($sql)), 0, 6) == 'select'):
$this->dataset = $query;
return $query;
else:
return $this->linhasafetadas;
endif;
else:
$this->trataerro(__FILE__, __FUNCTION__, NULL, 'Comando SQL não informado na rotina', FALSE);
endif;
}//executaSQL
public function retornaDados($tipo = NULL) {
switch (strtolower($tipo)):
case "array":
return mysql_fetch_array($this->dataset);
break;
case "assoc":
return mysql_fetch_assoc($this->dataset);
break;
case "object":
return mysql_fetch_object($this->dataset);
break;
default:
return mysql_fetch_object($this->dataset);
break;
endswitch;
}//retornaDados
public function trataerro($arquivo = NULL, $rotina = NULL, $numerro = NULL,
$msgerro = NULL, $geraexcept = FALSE) {
if ($arquivo == NULL)
$arquivo = "Não informado";
if ($rotina == NULL)
$rotina = "Não informada";
if ($numerro == NULL)
$numerro = mysqli_errno($this->conexao);
if ($arquivo == NULL)
$arquivo = mysql_error($this->conexao);
$resultado = 'Ocorreu um erro com os seguintes detalhes:<br />
<strong>Arquivo:</strong> ' . $arquivo . '<br />
<strong>Rotina:</strong> ' . $rotina . '<br />
<strong>Codigo:</strong> ' . $numerro . '<br />
<strong>Mensagem:</strong> ' . $msgerro . '<br />
';
if ($geraexcept == FALSE):
echo ($resultado);
else:
die($resultado);
endif;
}//trataerro
}//fim classe banco
?>
Fico no aguardo a Ajuda de vocês
Atenciosamente,
Fabiano
Discussão (1)
Carregando comentários...