| 
<?php
 /*
 * EXAMPLE 2 FILE FOR PTCQUERYBUILDER CLASS
 * PREPARED QUERIES FROM THE PTCQUERYBUILDER-EX1.PHP FILE WILL BE EXECUTED
 * RUN() , ROW() AND FIND() WIL BE USED TO EXECUTE  QUERIES INSTEAD OF PREPARE()
 * WHEN USING THE ABOVE METHODS, PLACE HOLDERS ARE NOT NEEDED
 */
 
 /*** DB DETAILS NEEDED TO EXECUTE QUERIES ***/
 $db[ 'host' ] = 'localhost';            // mysql host
 $db[ 'user' ] = 'user';                // mysql user
 $db[ 'pass' ] = 'pass';                // mysql pass
 $db[ 'database' ] = 'database';        // mysql database name
 /*************************************************************/
 
 $running = true;    // preventing the example1 file to print the queries
 
 require_once( 'ptcquerybuilder-ex1.php' ); // require the example 1 file with the prepared queries
 
 
 /* INITIALIZING A PDO OBJECT TO RUN QUERIES WITH THE QUERYBUILDER */
 $pdo = new PDO( 'mysql:host=' . $db[ 'host' ] . ';dbname=' . $db[ 'database' ] .
 ';charset:uft8;' , $db[ 'user' ] , $db[ 'pass' ] );
 $pdo->setAttribute( PDO::ATTR_DEFAULT_FETCH_MODE , PDO::FETCH_OBJ ); // setting pdo default fetch mode
 
 
 /* INITIALIZING THE QUERY BUILDER WITH PDO SUPPORT */
 $qb = new PtcQueryBuilder( $pdo );
 
 
 /* CREATE THE EXAMPLE TABLE */
 $qb->run( "DROP TABLE IF EXISTS `test_table`" );
 $qb->run( "CREATE TABLE `test_table`
 (
 `id` int NOT NULL AUTO_INCREMENT,
 PRIMARY KEY(`id`),
 `field1` varchar(255),
 `field2` varchar(255),
 `field3` varchar(255)
 )" );
 
 
 /* INSERTING DATA WITH PREVIOUSLY PREPARED STATEMENT */
 $qb->run( $query_insert , array( ':value1' => 'somevalue' , ':value2' => 'somevalue12' , ':value3' => 180 ) );
 $qb->run( $query_insert , array( ':value1' => 'somevalue' , ':value2' => 'somevalue1' , ':value3' => 20 ) );
 $qb->run( $query_insert , array( ':value1' => 'somevalue' , ':value2' => 'somevalue12' , ':value3' => 200 ) );
 /* GET LAST INSERTED ID */
 $last_id = $qb->lastId( );
 print '<b>last inserted Id:</b> '. $last_id . '<br><br>';
 
 
 /* UPDATING DATA WITH PREVIOUSLY PREPARED STATEMENT */
 $qb->run( $query_update , array( ':value1' => 'somevalue' ,
 ':value2' => 'insert id' , ':id' => $last_id ) ); // using last inserted id here
 $qb->run( $query_update1 , array( ':value1' => 'som32' ,
 ':value2' => 'so 43' , ':value3' => 'somevalue12' ) );
 /* GET NUMBER OF AFFECTED ROWS BY LAST QUERY */
 print '<b>Number of affected rows by update query:</b> ' . $qb->countRows( ) . '<br><br>';
 
 
 /* SELECTING DATA WITH PREVIOUSLY PREPARED STATEMENTS */
 $fields = array( ':value1' => 'somevalue' , ':value2' => 'insert id' );
 print "<b>prepared select query result:</b> <pre>";
 print print_r( $qb->run( $query_where1 , $fields ) , true ) . "</pre><br>";
 /* LIMITING RESULTS */
 $fields = array( ':start' => 1 , ':end' => 10 );
 print "<b>prepared select query result with limit:</b> <pre>";
 print print_r( $qb->run( $query_where2 , $fields ) , true ) . "</pre><br>";
 /* USING WHERE BETWEEN */
 $fields = array( ':value1' => 170 , ':value2' => 300 );
 print "<b>prepared select between query result:</b> <pre>";
 print print_r( $qb->run( $query_between , $fields ) , true ) . "</pre><br>";
 /* USING WHERE IN */
 $fields = array( ':1' => 20 , ':2' => 180 , ':limit' => 10 );
 print "<b>prepared select where in query result:</b> <pre>";
 print print_r( $qb->run( $query_in , $fields ) , true ) . "</pre><br>";
 
 
 /* DELETING DATA WITH PREVIOUSLY  PREPARED STATEMENTS */
 $qb->run( $query_delete , array( ':id' => $last_id ) );
 print '<b>Number of affected rows by delete based on id query:</b> ';
 print $qb->countRows( ) . '<br><br>';
 $qb->run( $query_delete1 , array( ':value' => 'somevalue' ) );
 print '<b>Number of affected rows by delete based on where clause query:</b> ';
 print $qb->countRows( ) . '<br><br>';
 
 
 /* CREATE ONE MORE EXAMPLE TABLE FOR THE JOIN QUERY */
 $qb->run( "CREATE TABLE `test_table1`
 (
 `id` int NOT NULL AUTO_INCREMENT,
 PRIMARY KEY(`id`),
 `field4` varchar(255)
 )" );
 
 
 /* RUNNING QUERIES WITH RUN() INSTEAD OF PREPARE(), NO PLACE HOLDERS NEEDED! */
 $qb->table( 'test_table1' )->insert( array( 'field4' => 'somevalue' ) )->run( );
 
 
 /* GET LAST INSERTED ID */
 $last_id = $qb->lastId( );
 print '<b>last inserted Id:</b> '. $last_id . '<br><br>';
 
 
 /* JOINING TABLES WITH PREVIOUSLY PREPARED QUERY,
 REPLACE "left_" WITH THE TYPE OF JOIN YOUR ARE LOOKING FOR */
 $qb->run( $query_join );
 
 
 /* RETRIEVEING ONLY ONE ROW */
 print "<b>return only 1 row query result:</b> <pre>";
 print print_r( $qb->table( 'test_table1' )
 ->where( 'field4' , '=' , 'somevalue' )
 ->row( ) , true ) . '</pre><br><br>';
 
 
 /* RETRIEVEING ONLY ONE COLUMN VALUE */
 print "<b>return only column value:</b> ";
 print print_r( $qb->table( 'test_table1' )
 ->where( 'field4' , '=' , 'somevalue' )
 ->row( 'field4' ) , true ) . '<br><br>';
 
 
 /* SELECTING A ROW BASED ON ID */
 print "<b>return record with ->find(yourID) , shortcut for where('id' , '=' , yourID ):</b> <pre>";
 print print_r( $qb->table( 'test_table1' )->find( $last_id ) , true ) . '</pre><br><br>';
 
 
 |