Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
E ai Pessoal,
Estou comessando a aprender php, por isso estou comentendo alguns erros basicos...
Meu problema é o seguinte: estou começando a estudar classes em php, então resolvi fazer uma classe que faça a conexão com o banco e tenha um metodo básico para leitura dos dados.
Segue a class, e a chamada dela:
Class
<?php
class conMYSQL
{
private $conn;
private $base;
private $dbHost;
private $dbUser;
private $dbPass;
private $actualbase;
private $actualtable;
private $fields;
private $dbQuery;
function __construct ($dbHost, $dbUser, $dbPass, $actualbase, $actualtable, $fields)
{
$this->dbHost = $dbHost;
$this->dbUser = $dbUser;
$this->dbPass = $dbPass;
$this->actualbase = $actualbase;
$this->actualtable = $actualtable;
$this->fields = $fields;
}
public function dbCon ()
{
$this->conn = mysql_connect($this->dbHost, $this->dbUser, $this->dbPass);
$this->base = mysql_select_db($this->actualbase);
return $this->conn;
}
public function dbRead()
{
$query = 'select ' . $this->fields . ' from ' . $this->actualtable;
$this->dbQuery = mysql_query($query, $this->dbCon());
return $this->dbQuery;
}
public function __destruct ()
{
mysql_close($this->dbCon);
echo 'BD Fechado';
}
}
?>
chamada
<?php
require_once 'classes/conMYSQL.class.php';
$conn = new conMYSQL('localhost', 'root', '', 'famosos', 'famosos', '*');
echo var_dump($conn->dbCon()) . "<br /> \n";
echo var_dump($conn->dbRead()) . "<br />\n";
if($conn->dbRead())
{
while ($row = mysql_fetch_assoc($conn->dbRead()))
{
echo $row['codigo'] . ' - ' . $row['nome'] . "<br /> \n";
}
} echo 'erro';
}
?>O que pode estar dando errado?
Obrigado!
E ai cara, consegui desta forma:
Ao invez de chamar o metodo dbRead(), chamei a variavel dbQuery, assim eu pego o ultimo valor atribuido a ela, desta forma funciona legal!
Vlw pela ajuda!
Abraço!
+ dessa forma você vai precisar tornar essa variavel publica, e isso naum é bom...
acho melhor você encapsular ^^
Feliz ano novo!
em primeiro lugar, defina uma variavel para $conn->dbRead() e depois cheque, pois você usa ela 3 vezes, isso, de acordo com a sua classe, faz com q ela execute 3 vezes a mesma query...
depois... eu naum to em casa, e nem tenho programas pra testar aqui...
+ tente usar mysql_fetch_array em vez de mysql_fetch_assoc...