<?php 
 
    /*  
    * EXAMPLE 1 FILE FOR PTCQUERYBUILDER CLASS, PREPARING QUERIES FOR LATER USAGE 
    * ALL QUERIES THAT ARE PREPARED WITH THE QUERYBUILDER, NEED PLACE HOLDERS 
    * TO SEE THE QUERIES EXECUTED REFER TO PTCQUERYBUILDER-EX2.PHP EXAMPLE FILE 
    */ 
     
    require_once( '../PtcQueryBuilder.php' ); // including the query builder component 
     
     
    $qb = new PtcQueryBuilder( );    // initializing the class 
     
     
    /* SELECT ALL RECORDS */ 
    $query = $qb->table( 'test_table' )->prepare( ); 
 
 
    /* SELECT WITH COLUMNS SPECIFIED */ 
    $query_with_columns = $qb->table( 'test_table' ) 
                            ->select( 'some_column as test' ) 
                            ->prepare( ); 
 
     
    /* SELECT WITH A WHERE CLAUSE  */ 
    $query_where = $qb->table( 'test_table' ) 
                    ->where( 'field1' , '=' , ':value' ) 
                    ->prepare( ); 
 
 
    /* SELECT WITH WHERE OR WHERE CLAUSE */ 
    $query_where1 = $qb->table( 'test_table' ) 
                       ->where( 'field1' , '=' , ':value1' ) 
                       ->or_where( 'field2' , '=' , ':value2' ) // adds "OR" to the query 
                      //->where( 'field2' , '=' , ':value3' ) // adds "AND" to the query  
                       ->prepare( ); 
 
     
    /* SELECT WITH LIMIT, GROUP BY, ORDER AND LIMIT */ 
    $query_where2 = $qb->table( 'test_table' ) 
                     //->group( 'field1' ) // group by method 
                       ->order( 'field1' , 'desc' ) 
                       ->limit( ':start' , ':end' ) // place holders are used for limit 
                       ->prepare( ); 
 
     
    /* INSERT */ 
    $fields = array( 'field1' => ':value1' , 'field2' => ':value2' ,'field3' => ':value3' );  
    $query_insert = $qb->table( 'test_table' )->insert( $fields )->prepare( ); 
 
     
    /* UPDATE BASED ON ID */ 
    $fields = array( 'field1' => ':value1' , 'field2' => ':value2' );  
    $query_update = $qb->table( 'test_table' ) 
                    ->update( $fields , ':id' ) 
                    ->prepare( ); 
 
 
    /* UPDATE BASED ON A WHERE CLAUSE */ 
    $fields = array( 'field1' => ':value1' , 'field2' => ':value2' ); 
    $query_update1 = $qb->table( 'test_table' ) 
                        ->where( 'field2' , '=' , ':value3' ) 
                        ->update( $fields )->prepare( ); 
 
 
    /* DELETE BASED ON ID */ 
    $query_delete = $qb->table( 'test_table' )->delete( ':id' )->prepare( ); 
 
     
    /* DELETE BASED ON WHERE CLAUSE */ 
    $query_delete1 = $qb->table( 'test_table' ) 
                       ->where( 'field1' , '=' , ':value' ) 
                       ->delete( ) 
                       ->prepare( ); 
 
     
    /* ADDING A RAW VALUE INSTEAD OF A PLACE HOLDER , RAW( ) CAN BE USED */ 
    $query_raw = $qb->table( 'test_table' ) 
                    ->where( 'field1' , '!=' , $qb->raw( 'NOW()' ) ) 
                    ->prepare( ); 
 
 
    /* JOINING TABLES , REPLACE "left_" WITH THE TYPE OF JOIN YOUR ARE LOOKING FOR */ 
    $query_join = $qb->table( 'test_table' ) 
                    ->left_join( 'test_table1' , 'test_table.id' , '=' ,  'test_table1.id' ) 
                    ->prepare( ); 
 
 
    /* SELECT WITH WHERE BETWEEN CLAUSE */ 
    $query_between = $qb->table( 'test_table' ) 
                         ->where_between( 'field3' , ':value1' , ':value2' ) 
                       //->where_not_between( 'field3' , ':value1' , ':value2' ) 
                       //->or_where_between( 'field3' , ':value1' , ':value2' ) 
                      // ->or_where_not_between( 'field3' , ':value1' , ':value2' ) 
                         ->prepare( ); 
 
 
    /* SELECT WITH WHERE IN CLAUSE */ 
    $query_in = $qb->table( 'test_table' ) 
                       ->where_in( 'field3' , array( ':1' , ':2' ) ) 
                       //->where_not_in( 'column' , array( ':1' , ':2' ) ) 
                       //->or_where_in( 'column' , array( ':1' , ':2' ) ) 
                       //->or_where_not_in( 'column' , array( ':1' , ':2' ) ) 
                       ->limit( ':limit' ) 
                       ->prepare( ); 
     
     
    /* COMPLICATED WHERE CLAUSE, USING CLOSURES */ 
    $query_where3 = $qb->table( 'test_table' ) 
        ->where( 'field1', '!=', ':value1' ) 
        ->or_where( function( $query ) // will generate " OR ( field3 > 10 AND field3 < 100 ) 
        { 
            $query->where( 'field3', '>', ':value2' ) 
                   ->where( 'field3' , '<',  ':value3' ); 
        } )->prepare( ); 
         
 
    /* COMPLICATED JOIN CLAUSE, USING CLOSURES */ 
    $query_join1 = $qb->table( 'test_table' ) 
                        ->left_join( 'test_table1' , function( $join ) 
                       { 
                        $join->on(  'test_table.id' , '=' ,  'test_table1.id' ) 
                            //->or_on(  'test_table.id' , '=' ,  'test_table1.id' ) 
                            ->on(  'test_table.id' , '=' ,  'test_table1.id' ); 
                        })->prepare( ); 
 
 
    if ( !isset( $running ) ) // preventing the example 1 file to print the queries if example 2 file is used 
    {  
        /* PRINTING THE PREPARED STATEMENTS */ 
        print $query . '<br><br>'; 
        print $query_with_columns . '<br><br>'; 
        print $query_where . '<br><br>'; 
        print $query_where1 . '<br><br>'; 
        print $query_where2 . '<br><br>'; 
        print $query_insert . '<br><br>'; 
        print $query_update . '<br><br>'; 
        print $query_update1 . '<br><br>'; 
        print $query_delete . '<br><br>'; 
        print $query_delete1 . '<br><br>'; 
        print $query_raw . '<br><br>'; 
        print $query_join . '<br><br>'; 
        print $query_between . '<br><br>'; 
        print $query_in . '<br><br>'; 
        print $query_where3 . '<br><br>'; 
        print $query_join1 . '<br><br>'; 
    } 
     
    // REFER TO PTCQUERYBUILDER-EX2.PHP FILE TO SEE THE QUERIES EXECUTED 
 
 
 |