#09 – Criando Class CRUD, function select() – Curso Loja Virtual – PHP



Iremos nesta vídeo aula, dando sequência a class Crud, criar o método select()…

playlist
PHP – Criando Class CRUD, insert(), select(), update(), delete()
https://www.youtube.com/watch?v=Tt8RNMSApPI&list=PL_OD25EBevLNsNCFzjshSFdgyqXTFHuyS

playlist
PHP – Criar Conexão banco de dados MySQL, Estruturando diretórios & utilizando função __autoload
https://www.youtube.com/playlist?list=PL_OD25EBevLOwt9fN4b1QCDa31BuitazE

playlist
WampServer 2.5 – baixando, instalando, configurando user admin, Virtual Host httpd.conf com servidor apache, multi-sites local
https://www.youtube.com/playlist?list=PL_OD25EBevLNo2vo97Y6v3s_Hkg0Q7yFv

source

20 comments

  1. Aqui meu select, quando abro a pagina da web fica tudo branco, nao mostra nada, dai quando vo pra aula 19 da acesso negado. mas o erro esta no select, que nao seleciona, quando faço o login na aula 19, ele conta 0 usuário, pq nao consegue selecionar, alguem pode ajudar por favor

  2. Opa e ae broter, muito boa suas explicações… consegui fazer tudo certo aqui, mas na hora de visualizar no navegadoras informações ficam todas bagunçadas, fica tudo inline.. não ficou organizado igual ao seu.. pq isso acontece?? Mais ta de parabens, seu curso é muito bom

  3. O meu fica mostrando este erro:

    ( ! ) Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: no parameters were bound in C:wamp64wwwdesenvolvendophp.comrequireclassCRUD.class.php on line 8
    Call Stack
    # Time Memory Function Location
    1 0.0030 243360 {main}( ) …ConDB.class.php:0
    2 0.0056 254800 CRUD->select( ) …ConDB.class.php:19
    3 0.0056 255000 CRUD->prepExec( ) …CRUD.class.php:19
    4 0.0101 263608 execute ( ) …CRUD.class.php:8

    Codigo:
    ConDB.class.php

    <?php
    function __autoload($class){require_once"{$class}.class.php";}

    abstract class ConDB
    {
    private static $cnx;
    // Esta funcção é privada, pois não sera possivel utilisa-la fora da classe
    private function setConn()
    { return
    is_null(self::$cnx)?
    self::$cnx=new PDO('mysql:host=localhost;dbname=desenvolvendophp','Admin','admin'):
    self::$cnx;
    }
    public function getConn()
    {return $this->setConn();}
    }
    $crud=new CRUD;
    $sel=$crud->select('idUser','user','WHERE idUser=?', array());
    foreach($sel as $reg){
    $_SESSION['user']=$reg;
    }

    CRUD.class.php

    <?php
    class CRUD extends ConDB
    {
    private $query;
    private function prepExec($prep,$exec)
    {
    $this->query=$this->getConn()->prepare($prep);
    $this->query->execute($exec);
    }

    public function insert($table,$prep,$exec)
    {

    $this->prepExec('INSERT INTO '.$table.' SET '.$prep.'',$exec);
    return $this->getConn()->lastInsertId();
    }
    public function select($fields,$table,$prep,$exec)
    {
    $this->prepExec('SELECT '.$fields.' FROM '.$table.' '.$prep.'',$exec);
    return $this->query;
    }
    }

  4. O meu está retornando o local do arquivo também:

    C:wamp64wwwdesenvolvendoPHPrequireclassConDB.class.php:29:string 'teste@hotmail.com' (length=17)

    Segue Código ConDB:

    <?php
    function __autoload($class)
    {
    require_once"{$class}.class.php";
    }

    abstract class ConDB
    {
    private static $cnx;
    private function setConn()
    {
    return
    is_null(self::$cnx)? //se conexão for nula então faça:
    self::$cnx=new PDO('mysql:host=localhost;dbname=desenvolvendophp','admin','admin'): //faz a conexão, senão:
    self::$cnx; //apenas executa
    }
    public function getConn()
    {
    return $this->setConn();
    }
    }
    $crud=new CRUD;
    $sel=$crud->select('*','user','WHERE idUser=?',array(1));
    foreach($sel as $reg)
    {
    $_SESSION['user']=$reg;
    }

    var_dump($_SESSION['user']['email']);

    —————————————————-
    Código CRUD:

    <?php
    class CRUD extends ConDB
    {
    private $query;
    private function prepExec($prep,$exec)
    {
    $this->query=$this->getConn()->prepare($prep);
    $this->query->execute($exec);
    }

    public function insert($table,$prep,$exec)
    {
    $this->prepExec('INSERT INTO '.$table.' SET '.$prep.'',$exec);
    return $this->getConn()->lastInsertId();
    }

    public function select($fields,$table,$prep,$exec)
    {
    $this->prepExec('SELECT '.$fields.' FROM '.$table.' '.$prep.'',$exec);
    return $this->query;
    }
    }

Comments are closed.