PHP Classes

File: examples/ptcquerybuilder-ex1.php

Recommend this page to a friend!
  Classes of Carlo Pietrobattista   PHP PDO Fluent Query Builder   examples/ptcquerybuilder-ex1.php   Download  
File: examples/ptcquerybuilder-ex1.php
Role: Example script
Content type: text/plain
Description: preparing queries example
Class: PHP PDO Fluent Query Builder
Build and run SQL queries with a fluent interface
Author: By
Last change:
Date: 10 years ago
Size: 4,909 bytes
 

Contents

Class file image Download
<?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