Dificuldade para chamar metódos.
Bom pessoal fiz estas classes mas não consigo chamar o metódo query() de forma alguma, ele acusa que o objeto não existe.
/**
* Enter description here...
*
*/
class ImplementaDb
{
private static $instancia = array();
/**
* Define a conexão com o drive
*
* @param unknown_type $type
*/
private function __construct($type){
self::$instancia[$type] = eval($type.'::SetConexao();');
}
/**
* Verifica se a instancia existe, caso contrario cria um novo objeto ou retorna o objeto atual.
*
* @param unknown_type $type
* @return unknown
*/
public static function setDrive($type)
{
if (!array_key_exists($type,self::$instancia))
{
self::$instancia[$type] = new self($type);
}
return self::$instancia[$type];
}
/**
* Chama o metodo query, "Não funciona...
*
* @param unknown_type $query
* @return unknown
*/
public function setQuery($query){
$this->query = eval(self::$instancia[$type].'->'.query($query));
return $this->query;
}
/**
* evita que a class seja clonada
*
*/
private function __clone()
{
trigger_error('Clone is not allowed.', E_USER_ERROR);
}
}
$d1 = ImplementaDb::setDrive('SGBD_Mysql');Class mysql
class SGBD_Mysql extends mysqli {
private static $instance;
public $conexao;
/**
* Cria a conexão com o drive, como a conexão padrão ou define uma nova
*
* @param unknown_type $host
* @param unknown_type $username
* @param unknown_type $passwd
* @param unknown_type $dbname
*/
private function __construct($host = "", $username = "", $passwd = "", $dbname = "")
{
if(func_num_args() == 0){
parent::__construct(DB_HOST,DB_USER,DB_PASS,DB_NAME);
}
else
{
$args = func_get_args();
eval("parent::__construct(" . join(',', array_map(array($this, "add_single_quotes"), $args)) . ");");
}
if (mysqli_connect_errno())
{
throw new Exception("Connect exception:\n".mysqli_connect_error());
}
}
/**
* Executa a query, "Não estou conseguindo chamar este metodo
*
* @param unknown_type $query
* @return unknown
*/
public function query($query)
{
$result = parent::query($query);
if(mysqli_error($this))
{
throw new exception(mysqli_error($this), mysqli_errno($this));
}
return $result;
}
/**
* Instancia a conexão
*
*/
public static function SetConexao(){
self::$instance = new self();
}
/**
* Evita que a class seja clonada
*
*/
private function __clone()
{
trigger_error('Clone is not allowed.', E_USER_ERROR);
}
}
Não consigo, melhor não sei chamar os outros metódos...
Quero executar uma query, e não consigo..
Alguma solução ?
Discussão (4)
Carregando comentários...