PHP Classes
elePHPant
Icontem

File: Xyndravandria/Dyverath/Query/Update.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Mauro Di Girolamo  >  Xyndravandria Dyverath  >  Xyndravandria/Dyverath/Query/Update.php  >  Download  
File: Xyndravandria/Dyverath/Query/Update.php
Role: Class source
Content type: text/plain
Description: Class source
Class: Xyndravandria Dyverath
Compose and execute MySQL database queries
Author: By
Last change: Alpha 0.0.0
Date: 1 year ago
Size: 4,784 bytes
 

Contents

Class file image Download
<?php
/*
=============================================================================================================================================
| This file is part of a project released under the terms of the Xyndravandria PHP License (XyndravandriaPHPLicense.txt). |
| |
| You should be given a copy of the Xyndravandria PHP License (XyndravandriaPHPLicense.txt) within the same directory as the README.md; |
| if not, you can get a copy at http://Xyndravandria.ohost.de/XyndravandriaPHPLicense.txt . |
| |
| The copyright (c) of this project is owned by Mauro Di Girolamo <maurodigirolamo@.web.de>. |
============================================================================================================================================|



Xyndravandria Dyverath
----------------------
Alpha 0.0.0

Xyndravandria is the name of a collection of projects designed and developed by Mauro Di Girolamo (maurodigirolamo@web.de); he is therefore the copyright (c) owner of Xyndravandria itself and all of its projects.

Xyndravandria Dyverath is released under the terms of the Xyndravandria PHP License (XyndravandriaPHPLicense.txt). You should be given a copy of the Xyndravandria PHP License (XyndravandriaPHPLicense.txt) within the same directory as the README.md; if not, you can get a copy at http://Xyndravandria.ohost.de/XyndravandriaPHPLicense.txt . There might be a release under a freer license for a later, more stable version.

The documentation is either included in ./admin_media/Documentation/ or can be read at http://Xyndravandria.ohost.de/Dyverath/Documentation/.

All projects:

   Xyndravandria Averazain
   http://github.com/MauroDiGirolamo/Xyndravandria_Averazain
   PHP
   Averazain is an Ajax framework supporting also JavaScript disabled clients perfectly - including search engines like Google.
  
   Xyndravandria Dyverath
   http://github.com/MauroDiGirolamo/Xyndravandria_Dyverath
   PHP
   Dyverath is a database access wrapper.
  
   Xyndravandria Erozaver
   http://github.com/MauroDiGirolamo/Xyndravandria_Erozaver
   PHP
   Erozaver is a class extending the type hinting given by the PHP engine (additional support for basic type hinting and size constraints).
  
   Xyndravandria Mondraviel
   http://github.com/MauroDiGirolamo/Xyndravandria_Mondraviel
   PHP
   Mondraviel is a class used to separate HTML from PHP code by firstly register models - files containing place holders embedded in HTML code - and then later fill them dynamically with content by passing values for the place holders.
*/

namespace Xyndravandria\Dyverath\Query;

use
Xyndravandria\Dyverath\Table;
use
Xyndravandria\Dyverath\Query\Component\Statement\StatementListing\UpdateStatement;
use
Xyndravandria\Dyverath\Query\Component\Statement\StatementListing\Where;
use
Xyndravandria\Erozaver\XyndravandriaDyverathException;

/// A class representing an UPDATE statement.
class Update extends Query {

  
/// The UpdateStatement assigning new values for the
   /// columns.
   /// <dl class = "type"><dt><b>%Type:</b></dt>
   /// <dd>UpdateStatement</dd></dl>
   /// @private
  
private $UpdateStatement;
  
  
/// The Where which constrains the Query.
   /// <dl class = "type"><dt><b>%Type:</b></dt>
   /// <dd>Where</dd></dl>
   /// @private
  
private $Where;
  
  
/// Creates a new Update.
   /// @public
   /// @param Table $Table: The Table this Query is
   /// executed in.
   /// @param UpdateStatement $UpdateStatement: The
   /// UpdateStatement assigning new values for the
   /// columns.
   /// @param Where $Where: The Where which constrains
   /// the Query.
  
public function __construct( Table $Table, UpdateStatement $UpdateStatement, Where $Where = null ) {
     
$this->Table = $Table;
     
$this->UpdateStatement = $UpdateStatement;
     
$this->Where = $Where;
     
$this->Optimise( );
      return;
   }
  
  
/// Optimises an Update.
   /// @public
  
public function Optimise( ) {
      \
is_null( $this->UpdateStatement ) || $this->UpdateStatement->Optimise( $this->Table );
      \
is_null( $this->Where ) || $this->Where->Optimise( $this->Table );
      return;
   }
  
  
/// Returns the complete statement.
   /// @public
   /// @returns string
  
public function __ToString( ) {
      return
'UPDATE ' . $this->Table . ' SET ' . $this->UpdateStatement . ( \is_null( $this->Where ) ? '' : ' WHERE ' . $this->Where );
   }
  
}
?>