Pergunta

I am new to php and crating classes for my project . I have reached this far ..

$db->select('id');
             $db->from('name');
             $db->where("idnum<:num");
             $db->bindparamers(':num',100);
             $rows=$db->executeQuery();

I wana know to create methods such that i can use all thing at once like below

$db->select('id')->from('name')->where('idnum>100')->executeQuery();

I have tried searching but not getting what exactly i should search for

here is my class structure

class Dbconnections
{
    //For Complex Queries
    public function select($items)
    {

    }
    public  function from($tablenames)
    {

    }
    public function where($arr)
    {

    }
    public function orderby($order)
    {

    }
    public function bindparamers($parameter,$value)
    {

    }
    public function executeQuery()
    {}


}

What changes i need to make to use it as :

$db->select('id')->from('name')->where('idnum>100')->executeQuery();
Foi útil?

Solução

It's called method chaining and in your case can be achieved by returning $this from each method.

class Dbconnections 
{
    public function select($items)
    {
        // ...
        return $this;
    }
    public  function from($tablenames)
    {
        // ...
        return $this;
    }
    public function where($arr)
    {
        // ...
        return $this;
    }
    public function orderby($order)
    {
        // ...
        return $this;
    }
    public function bindparamers($parameter,$value)
    {
        // ...
        return $this;
    }
    public function executeQuery()
    {
        // ...
        return $this;
    }
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top