PHP Classes

File: examples/ptcquerybuilder-ex2.php

Recommend this page to a friend!
  Classes of Carlo Pietrobattista   PHP PDO Fluent Query Builder   examples/ptcquerybuilder-ex2.php   Download  
File: examples/ptcquerybuilder-ex2.php
Role: Example script
Content type: text/plain
Description: executing 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: 5,051 bytes
 

Contents

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