Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

SiLLeNt

Problema em Classe de Conexao Com MySQL

Recommended Posts

Aew povo

to me arriscando aqui com oop

mais to me ferrando nessa classe... :///

 

Fui seguindo o exemplo do fabyo e seguindo outros exemplo

coloquei tudo no liquitificador e deu nisso....

so que ta sempre dando esse erro...

mais nao to encontrando nada de errado na linha que o erro é disparado

 

o erro é este:

 

Fatal error: Using $this when not in object context in C:\Arquivos de programas\Apache Group\Apache2\htdocs\loja\forum.php on line 37

 

E o código é este

 

<?phpclass Conexao extends Erro_Sql {	var $servidor = "localhost";	var $user = "root";	var $pass = "";	var $banco = "wloja";	var $mysqli;	public function Abrir()	{		$this->mysqli = new mysqli($this->servidor, $this->user, $this->pass, $this->banco); 		// Check Connect		if (@mysqli_connect_errno()) {			$this->Gravar_Conn();			return false;		} 	} 	public function Fechar()	{		$this->mysqli->close();	} } // Classe de execução de comandos em MySQLI ...class Comando extends Erro_Sql {	public function Checa_Query()	{		if (@mysqli_errno()) {			$this->Gravar_Query();			exit();		} 	} 	public function Executar($sql)	{		$con = new Conexao();		$con->Abrir();		$query = $con->mysqli->query($sql);		$this->Checa_Query(); // Essa é a linha do erro		$con->Fechar();		return $query;	} } // Classe para log de erros na execução de querys em SQLclass Erro_Sql {	var $log_erro = true;	var $log_handle = "log_sql_error.php";	var $log_data_hora = "";	var $log_ip = "";	public function Abrir_Log()	{		$handle = @fopen($this->log_handle, 'ab');	} 	public function Fechar_Log()	{		@fclose($handle);	} 	public function Gravar_Conn()	{		if ($this->log_erro) {			$this->log_data_hora = date("F j, Y, H:i:s");			$this->log_ip = $_SERVER['REMOTE_ADDR'];			$this->Abrir_log();			@fwrite($handle, "$this->log_data_hora - $this->log_ip - @mysqli_connect_error()\r\n");			$this->Fechar_Log();		} 	} 	public function Gravar_Query()	{		if ($this->log_erro) {			$this->log_data_hora = date("F j, Y, H:i:s");			$this->log_ip = $_SERVER['REMOTE_ADDR'];			$this->Abrir_log();			@fwrite($handle, "$this->log_data_hora - $this->log_ip - @mysqli_error()\r\n");			$this->Fechar_Log();		} 	} } ?>
agradeço desde já ae qualquer ajuda \o/

 

so pra consta... to usando isso pra testa a classe

 

<?phpinclude("sqli.php");$exec_sql = Comando::Executar("SELECT * FROM erros");while ($fetch = mysqli_fetch_array($exec_sql)) {	echo $fetch['descricao_erro'];	echo "<br />";} ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa pessoalo luis-restart me ajudo aqui nao entendi muito bem o erromais ele mando eu troca o $exec_sql = Comando::Executar("SELECT * FROM erros");Por isso aqui:$con = new Comando;$query = $con->Executar("SELECT * FROM erros");e deu certo \o//////valeu ae luisFabyoele ta fazendo certinho aqui a divisao em arrays ta tudo okagora vo continua debugando o script aquipra ve se ta tudo ok nas outras classes\ovaleu ae

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu num consigo mexeeee nessa coisamais aos pocos eu to me virandopeguei umas coisas sobre UML mais mesmo assim to me ferrando...mais quem sabe um dia...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ficam duas dicas.... ;)

 

Aplicando UML com PHP na prática (em inglês):

http://www.phppatterns.com/docs/design/php..._class_diagrams

 

Aulas de OO e UML (em português):

http://www.ucb.br/ucbtic/mgcti/paginapesso...isciplinas/UML/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu ae Proggostei do segundo link alio outro eu ja conheciavo da uma estudada essa semana...uma outra pergunta...é melhor eu ficar bom em oopantes de começar a programar em UML ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

A UML é uma ferramenta que vai te auxiliar a desenvolver seus projetos... é uma composição de vários diagramas, os quais você vai decidir quais pode usar em determinados projetos e, atravez da modelagem desses diagramas, você vai desenvolver seus projetos Orientados a Objetos.

 

Um exemplo prático seria o diagrama de classes, nele você modela como uma classe vai "conversar" com a outra, a visibilidade das suas propriedades e métodos, e assim por diante, digamos que seria um "desenho macro" do seu programa.

 

É o tipo da ferramenta que somente com a prática você vai pegando o jeito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse link do Prog é bem interessante, eu li todo o Curso ali passado, mas cheguei a seguinte conclusão: é melhor programar oop, na prática.Essas classes que você fez ficaram muito legais e você está começando a entender. A UML é Show, mas para projetos grandes e trabalhos em equipes. Acho ideal é a prática pois o curso é muito teórico, apesar de importante.Essa é a minha opinião. Siga programando em oop e, como hobbie, nas horas livres, vá lendo esse material. B)

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu to usando aqui o poseidonfiz algumas coisasmais mesmo assim vivo me perdendo...me perco nas partes de private, public... etc...o pproblema é que o poseidon é muito pesadoooo:////tem algum outro ae que você conheça ?

Esse link do Prog é bem interessante, eu li todo o Curso ali passado, mas cheguei a seguinte conclusão: é melhor programar oop, na prática.Essas classes que você fez ficaram muito legais e você está começando a entender. A UML é Show, mas para projetos grandes e trabalhos em equipes. Acho ideal é a prática pois o curso é muito teórico, apesar de importante.Essa é a minha opinião. Siga programando em oop e, como hobbie, nas horas livres, vá lendo esse material. B)

uia fico bom mesmo ???achei que tinha ficado ummas gambiarra tudo junto ahuiahuauiaiumais valeu ae pelo incentivo \o/////

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha só Sillent, eu não testei o seu código, mas o que você fez já é um grande passo para dominar oop. ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

To com um problema aquii na classe

 

Olhem ae:

 

<?php/** * Classe de tratamento de erros em SQL * Escrita em um arquivo PHP * aonde ficam registrados: DATA / HORA  / IP / E Erro SQL; *  * @version 1.0 * @copyright 2005 */class Erro_Sql {	var $log_erro = true; //indicação de log ON ou OFF	var $log_handle = "log_sql_error.php"; // Arquivo que será gravado os logs de erro  	var $handle = "";	var $desc_error = "";	public function Abrir_Log()	{		$handle = fopen($this->log_handle, 'ab');	} 	public function Fechar_Log()	{		fclose($handle);	} 	public function Gravar_Conn() // Grava erros de conexao...	{		if ($this->log_erro) { // Verefica se é pra gravar o erro ou nao...			$this->Abrir_log();			$this->desc_error = date("F j, Y, H:i:s") "-" $_SERVER['REMOTE_ADDR'] "-" mysqli_connect_error() "\r\n";			fwrite($this->handle, $this->desc_error);			$this->Fechar_Log();		} 	} 	public function Gravar_Query() // Grava erros de execução de códigos...	{		if ($this->log_erro) { // Verefica se é pra gravar o erro ou nao...			$this->Abrir_log();			$this->desc_error = date("F j, Y, H:i:s") "-" $_SERVER['REMOTE_ADDR'] "-" mysqli_error() "\r\n";			fwrite($this->handle, $this->desc_error);			$this->Fechar_Log();		} 	} } ?>
Ta apresentando esse erro:

 

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\Arquivos de programas\Apache Group\Apache2\htdocs\loja\class_erro_sql.php on line 30

 

Acho que é algum erro besta... pq nao to conseguindo seta a variavel...

 

e como seis sabe eu to começando nesse oop

 

deem uma luiz pra eu ae dinovo \o///

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faltou concatenar.

http://www.php.net/tokens

 

$this->desc_error = date("F j, Y, H:i:s") ."-". $_SERVER['REMOTE_ADDR'] ."-". mysqli_connect_error() ."\r\n";

 

:P

Compartilhar este post


Link para o post
Compartilhar em outros sites

vish

 

agora nao ta conseguindo escreve o arquivo...

 

Warning: fwrite(): supplied argument is not a valid stream resource in C:\Arquivos de programas\Apache Group\Apache2\htdocs\loja\class_erro_sql.php on line 31

 

Warning: fclose(): supplied argument is not a valid stream resource in C:\Arquivos de programas\Apache Group\Apache2\htdocs\loja\class_erro_sql.php on line 24

 

o arquivo existe, o arquivo ta abrindo e ta com permissao de escrita...

 

agora nao to entendendo...

será que a var $this->desc_error ta sem valor !?!?!?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui você esta usando $handle...

public function Abrir_Log()

{

$handle = fopen($this->log_handle, 'ab');

}

e aqui você esta usando $this->handle...

fwrite($this->handle, $this->desc_error);

Compartilhar este post


Link para o post
Compartilhar em outros sites

afeeesabia que era tudo bobera\o//bem erro de quem ta começando memo no oop hfuisfsdufisaok valeu Prog pela ajuda muito obrigado \o/

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.