Ir para conteúdo

POWERED BY:

Arquivado

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

Carlos Vital

[Resolvido]  com lógica para verificação

Recommended Posts

Oi galera! Tudo bem?

 

Eu tenho duas classes para conexão com o banco de dados, a DB_Mysql (para usar o módulo mysql.dll) e a DB_Mysqli (para usar o módulo mysqli.dll).

Estou querendo montar uma função para carregar e instanciar essas duas classes, de acordo com o que eu escolher através do parametro $drive, mysql para carregar a classe DB_Mysql e mysqli para carregar a classe DB_Mysqli.

Mas eu queria que a função verificasse se o módulo do php escolhido está disponível, e caso não estege disponível ele não carregue a classe, e verifique se o outro módulo está disponivel, caso estege disponível, ele carregue a classe referente a esse módulo, e caso não estege disponível, a função exibe uma mensagem de erro.

 

É isso pessoal, se puderem me ajudar ficarei muito grato.

 

Carlos Henrique

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae galera consegui fazer o que estava querendo.

Usei as funções extension_loaded e a dl.

 

Olhem ai:

 

PHP
class DB{

       

        //--

        private $host;

        private $user;

        private $pass;

        private $db;

        //--

       

       

        //--

        public function __construct($hostname, $username, $password, $database)

        {

               

                $this->host = $hostname;

                $this->user = $username;

                $this->pass = $password;

                $this->db   = $database;

               

        }

        //--

       

       

        //--

        private function verifica($d)

        {

               

                if (!extension_loaded($d))

                {

                        if (function_exists("dl"))

                        {

                                $prefix = (PHP_SHLIB_SUFFIX == "dll") ? "php_" : "";

                               

                                if (!dl($prefix . $d . "." . PHP_SHLIB_SUFFIX))

                                {

                                        return FALSE;

                                }

                        }

                }

               

                return TRUE;

               

        }

        //--

       

       

        //--

        public function get_db($drive)

        {

               

                if ($drive == "mysql" && $this->verifica("mysql"))

                {

                       

                        require_once "DB_mysql.php";

                       

                        return new DB_mysql($this->host, $this->user, $this->pass, $this->db);

                       

                } elseif ($drive == "mysql" && !$this->verifica("mysql")) {

                       

                        if ($this->verifica("mysqli"))

                        {

                               

                                require_once "DB_mysqli.php";

                               

                                return new DB_mysqli($this->host, $this->user, $this->pass, $this->db);

                               

                        } else {

                               

                                return FALSE;

                               

                        }

                       

                }

               

                if ($drive == "mysqli" && $this->verifica("mysqli")){

                       

                        require_once "DB_mysqli.php";

                       

                        return new DB_mysqli($this->host, $this->user, $this->pass, $this->db);

                       

                } elseif ($drive == "mysqli" && !$this->verifica("mysqli")) {

                       

                        if ($this->verifica("mysql"))

                        {

                               

                                require_once "DB_mysql.php";

                               

                                return new DB_mysql($this->host, $this->user, $this->pass, $this->db);

                               

                        } else {

                               

                                return FALSE;

                               

                        }

                       

                }

               

        }

        //--

       

}

Até mais.

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.