Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala galera... to com um problemaaaaaaaão aki...(pra mim tah sendo bem cabeludo...rs)... e não to conseguindo resolver de maneira nenhuma...
eu criei um método chamado Delete() na classe Query, e se eu deixo este método na classe, o site simplismente não funcionar, não retorna NENHUM TIPO DE ERRO, NENHUM TIPO DE AVISO, msmo eu setando os erros cm "E_ALL" pra mostrar todos os erros... o estranho, é q se eu tiro este métood da classe, o site funciona perfeitamente, msmo eu não chamando ele, ele detona o site... :upset: <_< :cry: :wacko:
classe Query:
//include do autoload
include "../config/autoload.php";
class Query
{
// instancia da conexao
public static $query;
// dados da pesquisa realizada
public static $numRows;
public static $insertId;
public static $affectedRows;
public static $ping;
public static $debugQuerys;
const MODE_SELECT = 0;
const MODE_INSERT = 1;
const MODE_UPDATE = 2;
const MODE_DELETE = 3;
public static function Execute($sql,$mode) self::$query = new Conexao;
// Armazena o resultado da busca numa variavel
$resultado = self::$query->Query($sql);
// Armazena nas variaveis da classe alguns dados da pesquisa
self::$numRows = self::$query->numResultados;
self::$insertId = self::$query->idInsercao;
self::$affectedRows = self::$query->linhasAfetadas;
self::$ping = self::$query->pingQuery;
$mode_debug = $mode == self::MODE_SELECT ? "Resultados Encontrados: <span class=\"result\">".self::$query->numResultados."</span>" : "Linhas Afetadas: <span class=\"result\">".self::$query->linhasAfetadas."</span>";
$classPing = self::$query->pingQuery == 'Sucesso' ? ' success' : ' error' ;
if(__DEBUG === true)
{
self::$debugQuerys.= "
<div class=\"debug\">
<span class=\"leg_sql\">SQL: <span class=\"sql\">".$sql."</span></span></br>
<span class=\"leg_result\">".$mode_debug."</span></br>
<span class=\"leg_ping\">Ping: <span class=\"ping ".$classPing."\">".self::$query->pingQuery."</span></span></span>
</div>";
}
else
{
self::$debugQuerys = '<div class="debug-desactive">DEBUG MODE está desativado, ative-o para exibir o LOG de Querys</div>';
}
// Retorna o resultado da busca
return $resultado;
}
public static function NumRowsSearched() return self::$numRows;
}
public static function PegaIdInsercao() return self::$insertId;
}
public static function EscapeString($string) self::$query = new Conexao;
if(self::$query->statusConexao === false)
{
self::$query->Conecta();
}
return mysqli_real_escape_string(self::$query->link,$string);
}
public static function Insert(array $valoresSetados) foreach($valoresSetados as $valorSetado)
{
$valorSetado = utf8_decode($valorSetado);
$valores[] = sprintf("'%s'",self::EscapeString($valorSetado));
}
$rQuery = self::Execute("INSERT INTO ".static::$tabela." (".join(',',static::$colunas).") VALUES (".join(',',$valores).")",self::MODE_INSERT);
return $rQuery;
}
public static function Select($colunas="",$condicoes="") $colunasSelecionadas = $colunas == "" ? "*" : $colunas;
$where = $condicoes == '' ? '' : " WHERE ".$condicoes;
$rQuery = self::Execute("SELECT ".$colunasSelecionadas." FROM ".static::$tabela.$where,self::MODE_SELECT);
return $rQuery;
}
public static function Update(array $colunasEvalores,$condicoes) return 'As colunas com seus valores respectivos tem que serem setados';
}
else if(!is_array($colunasEvalores))
{
return 'Os valores tem q ser setados como um array: COLUNA => VALOR';
}
else if(empty($condicoes))
{
return 'Pelo menos um condição tem que ser setada';
}
else
{
foreach($colunasEvalores as $coluna => $valorSetado)
{
$valorSetado = utf8_decode($valorSetado);
$colunasUp[] = $coluna;
$valores[] = sprintf("%s='%s'",$coluna,self::EscapeString($valorSetado));
}
foreach($colunasUp as $verificaColuna)
{
if(!in_array($verificaColuna,static::$colunas))
{
$colunasInvalidas[] = $verificaColuna;
}
}
if(!empty($colunasInvalidas))
{
return 'As colunas: '.join(",",$colunasInvalidas).' NÃO existem na Tabela: '.static::$tabela.' ,verifique os nomes das colunas novamente (Formato: COLUNA => VALOR)';
}
else
{
return self::Execute("UPDATE ".static::$tabela." SET ".join(', ',$valores)." WHERE ".$condicoes,self::MODE_UPDATE);
}
}
}
public static function Delete(array $condicoes='',$delAllRegistres=false) if($delAllRegistres === true)
{
return "DELETE FROM ".static::$tabela."";//self::Execute("DELETE FROM ".static::$tabela."",self::MODE_DELETE);
}
else
{
if(empty($condicoes))
{
return 'Parâmetro "condições" é OBRIGATÓRIO se o parâmetro "delAllRegistres" não for setado como TRUE';
}
else if(!is_array($condicoes))
{
return 'Os valores tem q ser setados como um array: COLUNA => VALOR';
}
else
{
$indice = 1;
foreach($condicoes as $coluna => $valorSetado)
{
$colunasDel[] = $coluna;
if($indice == 1)
{
$valores[] = sprintf("%s='%s'",$coluna,self::EscapeString($valorSetado));
}
else if($indice >= 2)
{
$valores[] = sprintf("AND %s='%s'",$coluna,self::EscapeString($valorSetado));
}
$indice++;
}
foreach($colunasDel as $verificaColuna)
{
if(!in_array($verificaColuna,static::$colunas))
{
$colunasInvalidas[] = $verificaColuna;
}
}
if(!empty($colunasInvalidas))
{
return 'As colunas: '.join(",",$colunasInvalidas).' NÃO existem na Tabela: '.static::$tabela.' ,verifique os nomes das colunas novamente (Formato: COLUNA => VALOR)';
}
else
{
return "DELETE FROM ".static::$tabela." WHERE ".join(' ',$valores)."";//self::Execute("DELETE FROM ".static::$tabela." WHERE ".$condicoes,self::MODE_DELETE);
}
}
}
}
}
só pra base de vcs, a Classe Conexao, q eh a q eu chamo na classe Query:
//include do autoload
include "../config/autoload.php";
class Conexao
{
public $link;
public $statusConexao;
public $idInsercao;
public $numResultados;
public $linhasAfetadas;
public $pingQuery;
public function __construct()
{
$this->numResultados = 0;
$this->statusConexao = false;
$this->saida = array();
$this->link = new MySQLi;
}
public function Conecta()
{
if($this->statusConexao === false)
{
$this->link->connect(DB_HOST,DB_USER,DB_PASS,DB_NAME);
if($this->link->connect_errno === 0)
{
$this->statusConexao = true;
}
else
{
echo 'OCORREU O ERRO ESPECIFICADO ABAIXO AO TENTAR CONECTAR COM O BANCO DE DADOS '.__DBNM.' COM OS DADOS:';
if(__DEBUG === true)
{
echo "<br/>Host de Conexao: ".__HOST;
echo "<br/>Usuario de Conexao: ".__USER;
echo "<br/>Senha de Conexao: ".__PASS;
}
$this->PegaErroConexao();
}
}
}
public function PegaErroConexao()
{
echo "<br/>Ocorreu o seguinte erro ao conectar com o banco da dados: ".$this->link->connect_error." - Nº do Erro: ".$this->link->connect_errno;
}
public function Query($sql)
{
if($this->statusConexao === false)
{
$this->Conecta();
}
$q = $this->link->query($sql) or die ($this->link->error);
$this->idInsercao = $this->link->insert_id;
$this->numResultados = $q->num_rows;
$this->linhasAfetadas = $this->link->affected_rows;
$this->pingQuery = $this->link->ping() == 1 ? 'Sucesso' : 'Erro';
$saida = array();
if (is_object($q) && $q->num_rows > 0)
{
while($resultado = $q->fetch_object())
{
$saida[] = $resultado;
}
}
return $saida;
}
}
o autoload:
function __autoload($classname)
{
$recursiveIterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator(PATH_CLASSES));
foreach($recursiveIterator as $arquivo) $path_arquivo = str_replace("\\","/",$arquivo->getPath());
$extencao = explode(".",$arquivo->getFilename());
if($arquivo->getFilename() == "$classname.".$extencao[1])
{
@include($path_arquivo."/".$arquivo->getFilename());
}
else
{
continue;
}
}
}
e uma das classes modelo:
//include do autoload
include "../config/autoload.php";
class Produto extends Query
{
public static $tabela = "produtos";
public static $colunas = array(
"produto_id",
"produto_nome",
"produto_expancao",
"produto_nome_expancao",
"produto_status",
"produto_distribuidora",
"produto_desenvolvedora",
"produto_preco",
"produto_tipo",
"produto_categoria",
"produto_foto",
"produto_midias",
"produto_descricao",
"produto_requisitos",
"produto_video",
"produto_data_lancamento",
"produto_data_insercao",
"produto_qtdd_disponivel",
"produto_qtdd_vendidos",
"produto_situacao"
);
}
alguém sabe o pq q estando com este métood o site simplismente para de funcionar???????????
estou quebrando a kbça o domingo inteiro e não consegui achar o problema... por favor, pelo amor de Deus... me ajudem...
Carregando comentários...