thiago 0 Denunciar post Postado Junho 23, 2010 Boa noite a todos, Achei uma classe de conexão na internet e estou estudando ela para aprender mais. São duas páginas, tenho cinco duvidas: 1 -(ConexaoMysql.class.php) Eu devo usar var ou public no começo da classe? 2 -(ConexaoMysql.class.php) Usar var na classe é errado ou obsoleto? 3 -(home.php) Estou usando require, require_once é mais adequado para essa situação? 4 -(home.php) Na home é usado esse método "$ObejtoConexao->fechar();" , não precisa de um "$ObejtoConexao->conexao" depois de "$ObejtoConexao = new ConexaoMysql();"? 5 -(home.php) É errado criar varios "$ObejtoConexao = new ConexaoMysql();" e $ObejtoConexao->fechar();" na mesma página? ConexaoMysql.class.php: <?php Class ConexaoMysql { [color="#006400"]var[/color] $servidor="localhost"; var $usuario="root"; var $senha=""; var $banco="teste"; var $query=""; var $link=""; function ConexaoMysql() { $this->conexao(); } function conexao() { $this->link = mysql_connect($this->servidor,$this->usuario,$this->senha); if (!$this->link) { die("Error na conexao"); } elseif (!mysql_select_db($this->banco,$this->link)) { die("Error na conexao"); } } function sql($query) { $this->query = $query; if ($result = mysql_query($this->query,$this->link)) { return $result; } else { return 0; } } function id() { return mysql_insert_id($this->link); } function fechar() { return mysql_close($this->link); } } ?> home.php: <?php [color="#0000FF"]require[/color]("ConexaoMysql.class.php"); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <link rel="stylesheet" type="text/css" href="css/estilo_home.css" /> <title>teste</title> </head> <body> <div id="box_geral"> <div id="box_esquerda"> <div id="form_upload"> <form name="cad_index_destaque" action="upload_php.php" method="post" enctype="multipart/form-data"> <table width="228" border="1"> <tr> <td width="218"><label style="color:#000000;font-family:Arial; font-size:13px;">Nome</label> </td> </tr> <tr> <td><input type="text" name="nome" maxlength="10"/></td> </tr> <tr> <td><label style="color:#000000;font-family:Arial; font-size:13px;">Descrição</label></td> </tr> <tr> <td><input type="text" name="descricao" size="39" maxlength="34"/></td> </tr> <tr> <td><label style="color:#000000;font-family:Arial; font-size:13px;">Arquivo</label></td> </tr> <tr> <td><input type="file" name="arquivo" /></td> </tr> <tr> <td><input type="submit" value="Upload" /></td> </tr> <tr> <td><label style="color:#000000;font-family:Arial; font-size:13px;"> <a href="logout.php">SAIR</a></label></td> </tr> <tr> </tr> </table> </form> </div> </div><!-- fim div box_esquerda --> <div id="box_direita"> <div id="meio" style="overflow-y:auto; overflow-x:hidden;"> <?php [color="#FF8C00"]$ObejtoConexao = new ConexaoMysql();[/color] [color="#FF8C00"]//aqui é onde eu acho que deveria ter um $ObejtoConexao->conexao();[/color] $sql = mysql_query("select * from php"); while ($linha = mysql_fetch_array($sql)) { echo $descricao = "$linha[descricao_php]" ;} echo "".$descricao.""; [color="#FF8C00"]$ObejtoConexao->fechar();[/color] ?> </div><!-- fim div meio --> </div><!-- fim div box_direita --> </div><!-- fim div box_geral --> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Junho 23, 2010 1 -(ConexaoMysql.class.php) Eu devo usar var ou public no começo da classe? use public, private, ou protected para a visibilidade dos atributos e dos métodos 2 -(ConexaoMysql.class.php) Usar var na classe é errado ou obsoleto? var é obsoleto 3 -(home.php) Estou usando require, require_once é mais adequado para essa situação? um include já resolve.. só use os _once, se por algum motivo estranho, você poder ter o risco de incluir mais de uma vez o arquivo. (o once garante que só seja incluido uma vez, e por isso é mais lento) 4 -(home.php) Na home é usado esse método "$ObejtoConexao->fechar();" , não precisa de um "$ObejtoConexao->conexao" depois de "$ObejtoConexao = new ConexaoMysql();"? não precisa não, pois esse método já está sendo chamado no __construct, ou seja, logo que você cria o objeto, o método conexao() já é executado 5 -(home.php) É errado criar varios "$ObejtoConexao = new ConexaoMysql();" e $ObejtoConexao->fechar();" na mesma página? vários... é ne?!vai ficar lento, e nem é necessário.. mantenha a conexão aberta até realmente não precisar dela.. só feche uma vez e só abra uma vez, mas use qntas precisar.. com o mesmo objeto. Compartilhar este post Link para o post Compartilhar em outros sites
thiago 0 Denunciar post Postado Junho 24, 2010 Obrigado William... Ficou só mais uma dúvida, oque é mais correto, Caso 1 ou Caso 2? Caso 1: home.php: <?php require("ConexaoMysql.class.php"); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <link rel="stylesheet" type="text/css" href="css/estilo_home.css" /> <title>teste</title> </head> <body> <div id="box_geral"> <div id="box_esquerda"> <div id="form_upload"> <form name="cad_index_destaque" action="upload_php.php" method="post" enctype="multipart/form-data"> <table width="228" border="1"> <tr> <td width="218"><label style="color:#000000;font-family:Arial; font-size:13px;">Nome</label> </td> </tr> <tr> <td><input type="text" name="nome" maxlength="10"/></td> </tr> <tr> <td><label style="color:#000000;font-family:Arial; font-size:13px;">Descrição</label></td> </tr> <tr> <td><input type="text" name="descricao" size="39" maxlength="34"/></td> </tr> <tr> <td><label style="color:#000000;font-family:Arial; font-size:13px;">Arquivo</label></td> </tr> <tr> <td><input type="file" name="arquivo" /></td> </tr> <tr> <td><input type="submit" value="Upload" /></td> </tr> <tr> <td><label style="color:#000000;font-family:Arial; font-size:13px;"> <a href="logout.php">SAIR</a></label></td> </tr> <tr> </tr> </table> </form> <?php $ObejtoConexao = new ConexaoMysql();//Aqui eu coloco o "$ObejtoConexao = new ConexaoMysql();" $sql = mysql_query("select * from php"); while ($linha = mysql_fetch_array($sql)) { echo $descricao = "$linha[descricao_php]" ;} echo "".$descricao.""; //Aqui eu não coloco o "$ObejtoConexao->fechar();" ?> </div> </div><!-- fim div box_esquerda --> <div id="box_direita"> <div id="meio" style="overflow-y:auto; overflow-x:hidden;"> <?php //Aqui eu não coloco "$ObejtoConexao = new ConexaoMysql();" $sql = mysql_query("select * from php"); while ($linha = mysql_fetch_array($sql)) { echo $descricao = "$linha[descricao_php]" ;} echo "".$descricao.""; $ObejtoConexao->fechar();//Aqui eu fecho oque foi aberto lá em cima com "$ObejtoConexao->fechar();" ?> </div><!-- fim div meio --> </div><!-- fim div box_direita --> </div><!-- fim div box_geral --> </body> </html> Caso 2: home.php: <?php require("ConexaoMysql.class.php"); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <link rel="stylesheet" type="text/css" href="css/estilo_home.css" /> <title>teste</title> </head> <body> <div id="box_geral"> <div id="box_esquerda"> <div id="form_upload"> <form name="cad_index_destaque" action="upload_php.php" method="post" enctype="multipart/form-data"> <table width="228" border="1"> <tr> <td width="218"><label style="color:#000000;font-family:Arial; font-size:13px;">Nome</label> </td> </tr> <tr> <td><input type="text" name="nome" maxlength="10"/></td> </tr> <tr> <td><label style="color:#000000;font-family:Arial; font-size:13px;">Descrição</label></td> </tr> <tr> <td><input type="text" name="descricao" size="39" maxlength="34"/></td> </tr> <tr> <td><label style="color:#000000;font-family:Arial; font-size:13px;">Arquivo</label></td> </tr> <tr> <td><input type="file" name="arquivo" /></td> </tr> <tr> <td><input type="submit" value="Upload" /></td> </tr> <tr> <td><label style="color:#000000;font-family:Arial; font-size:13px;"> <a href="logout.php">SAIR</a></label></td> </tr> <tr> </tr> </table> </form> <?php $ObejtoConexao = new ConexaoMysql();//Aqui eu coloco o "$ObejtoConexao = new ConexaoMysql();" $sql = mysql_query("select * from php"); while ($linha = mysql_fetch_array($sql)) { echo $descricao = "$linha[descricao_php]" ;} echo "".$descricao.""; $ObejtoConexao->fechar();//Aqui eu coloco o "$ObejtoConexao->fechar();" ?> </div> </div><!-- fim div box_esquerda --> <div id="box_direita"> <div id="meio" style="overflow-y:auto; overflow-x:hidden;"> <?php $ObejtoConexao = new ConexaoMysql();//E aqui eu coloco novamente o "$ObejtoConexao = new ConexaoMysql();" $sql = mysql_query("select * from php"); while ($linha = mysql_fetch_array($sql)) { echo $descricao = "$linha[descricao_php]" ;} echo "".$descricao.""; $ObejtoConexao->fechar();//E aqui também coloco o "$ObejtoConexao->fechar();" ?> </div><!-- fim div meio --> </div><!-- fim div box_direita --> </div><!-- fim div box_geral --> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
thiago 0 Denunciar post Postado Novembro 26, 2010 Caso 1 é mais correto! RESOLVIDO Compartilhar este post Link para o post Compartilhar em outros sites