0
Hi, how are you? I am learning database with php, was creating a class named crud where there is a select function to remove data from the database, however, after select, the result is always 0, and pussuo data in the database, follow the code below:
Class code:
class Crud{
    // VARIAVEIS SOBRE O DATABASE
    // guarda o nome do banco de dados 
    private $db_name;
    // nome do usuario do banco de dados
    private $db_user;
    // senha do banco de dados
    private $db_password;
    // servidor o qual está o banco de dados
    private $db_server;
    // guarda qual a linguagem do banco de dados ( ainda em desenvolvimento )
    private $db_language;
    // guarda a conecção com o banco de dados para que possam ser executadas as funções
    private $db_conn;
    // seta as variaveis para os valores passados ou para os pré definidos
    function __construct($_name, $_user='root', $_password='', $_server='localhost', $_language='mysql'){
        $this->set('db_name', $_name);
        $this->set('db_user', $_user);
        $this->set('db_password', $_password);
        $this->set('db_server', $_server);
        $this->set('db_language', $_language);
    }
    // Conecta ao banco de dados por meio de uma conecção PDO
    private function connect(){
        try {
            // guarda as variaveis globais em variaveis locais para simplificar e diminuir a linha de conecção que vem posteriormente
            $host = $this->get('db_server');
            $name = $this->get('db_name');
            $user = $this->get('db_user');
            $password = $this->get('db_password');
            $language = $this->get('db_language');
            // seta a variavel db_conn como a conecção do banco de dados, permitindo usar em outras funções
            $this->set('db_conn', new PDO("$language:host=$host;dbname=$name", $user, $password));
            $this->db_conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        } catch (PDOException $e){
            return $e;
        }
    }
    // Desconecta do banco de dados atribuindo null a variavel que contem o objeto
    private function desconnect(){
        $this->db_conn = NULL;
    }
 /*
    Função que retorna o dados do banco de dados
    *$column_array: array que contem strings com as colunas que se deseja obter 
    *$table: string que contem o nome da tabela a qual os dados serão inseridos
    *$where: string que contem a condição a ser executada após o where, ex: 'id = 1', caso vazio, retorna tudo da tabela
    */
    public function select($column_array, $table, $where=''){
        $this->connect();
        
        // CRIAÇÃO DA QUERY SQL
        $sql_qr = "SELECT";
        $c = 0;
        // adição das colunas que irão ser retornadas
        foreach($column_array as $column){
            if($c == 0){
                $sql_qr = $sql_qr . " $column";
                $c++;
            } else {
                $sql_qr = $sql_qr . ", $column";
            }
        }
        // Adição da tabela e da condição where
        $sql_qr = $sql_qr . " FROM $table";
        if($where!=''){
            $sql_qr = $sql_qr . " WHERE $where";
        }
        $dados = $this->db_conn->exec($sql_qr);
        echo $dados;
        $this->desconnect();
    }
    // CLASS FUNCTIONS
    private function get($variable){
        return $this->$variable;
    }
    private function set($variable, $value){
        $this->$variable = $value;
    }
}
$c = new Crud('test');
$c->select(['id', 'nome', 'sobrenome'], 'test_table');
As I said, when I give "echo $data" in the function Insert, it returns 0, however, my database is not empty ( photo below ), some suggestion I can do?
