Ir para conteúdo

POWERED BY:

Arquivado

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

thiago

[Resolvido] Classe de conexão ao Mysql

Recommended Posts

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

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

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

×

Informação importante

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