Overview

Namespaces

  • DSchoenbauer
    • Sql
      • Command
      • Exception
      • Where

Classes

  • DSchoenbauer\Sql\Command\Create
  • DSchoenbauer\Sql\Command\Delete
  • DSchoenbauer\Sql\Command\Select
  • DSchoenbauer\Sql\Command\Update
  • DSchoenbauer\Sql\Exception\EmptyDatasetException
  • DSchoenbauer\Sql\Exception\ExecutionErrorException
  • DSchoenbauer\Sql\Exception\MethodNotValidException
  • DSchoenbauer\Sql\Query
  • DSchoenbauer\Sql\Where\ArrayWhere

Interfaces

  • DSchoenbauer\Sql\Command\CommandInterface
  • DSchoenbauer\Sql\Exception\SqlExceptionInterface
  • DSchoenbauer\Sql\Where\WhereStatementInterface

Traits

  • DSchoenbauer\Sql\Command\WhereTrait
  • Overview
  • Namespace
  • Class
  1: <?php
  2: /*
  3:  * The MIT License
  4:  *
  5:  * Copyright 2017 David Schoenbauer <dschoenbauer@gmail.com>.
  6:  *
  7:  * Permission is hereby granted, free of charge, to any person obtaining a copy
  8:  * of this software and associated documentation files (the "Software"), to deal
  9:  * in the Software without restriction, including without limitation the rights
 10:  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 11:  * copies of the Software, and to permit persons to whom the Software is
 12:  * furnished to do so, subject to the following conditions:
 13:  *
 14:  * The above copyright notice and this permission notice shall be included in
 15:  * all copies or substantial portions of the Software.
 16:  *
 17:  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 18:  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 19:  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 20:  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 21:  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 22:  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 23:  * THE SOFTWARE.
 24:  */
 25: namespace DSchoenbauer\Sql;
 26: 
 27: use DSchoenbauer\Sql\Command\Create;
 28: use DSchoenbauer\Sql\Command\Delete;
 29: use DSchoenbauer\Sql\Command\Select;
 30: use DSchoenbauer\Sql\Command\Update;
 31: use DSchoenbauer\Sql\Where\WhereStatementInterface;
 32: use PDO;
 33: 
 34: /**
 35:  * a facade object that allows easier implementation of the SQL library
 36:  *
 37:  * @author David Schoenbauer <dschoenbauer@gmail.com>
 38:  *
 39:  */
 40: class Query
 41: {
 42: 
 43:     /**
 44:      * provides a means for functional access to the objects of this library
 45:      * @return \static a new instance of this object
 46:      * @since v1.0.0
 47:      */
 48:     public static function with()
 49:     {
 50:         return new static();
 51:     }
 52: 
 53:     /**
 54:      * adds new data into a PDO connected resource
 55:      * @param string $table table with which you wish to append to
 56:      * @param array $data  a single level associative array containing keys that
 57:      * represent the fields and values that represent new values to be added
 58:      * into the table
 59:      * @return Create a create object that manages the addition of new records
 60:      * @since v1.0.0
 61:      */
 62:     public function create($table, array $data)
 63:     {
 64:         return new Create($table, $data);
 65:     }
 66: 
 67:     /**
 68:      * retrieves data from a PDO connected resource
 69:      * @param string $table name of the table that houses the data
 70:      * @param array $fields optional default value: empty array - defines which
 71:      * fields are returned if no fields defined a star will be used
 72:      * @param WhereStatementInterface $where optional default value: null -
 73:      * object used to limit the returned results
 74:      * @param integer $fetchStyle optional default value: PDO::FETCH_ASSOC -
 75:      * sets how the PDO statement will return records
 76:      * @param boolean $fetchFlat optional default value: false - true will
 77:      * return one record, false will return all records
 78:      * @param mixed $defaultValue optional default value: empty array -
 79:      * value to be returned on query failure
 80:      * @return Select the select object responsible for retrieving records
 81:      * @since v1.0.0
 82:      */
 83:     public function select(
 84:         $table,
 85:         $fields = [],
 86:         WhereStatementInterface $where = null,
 87:         $fetchStyle = PDO::FETCH_ASSOC,
 88:         $fetchFlat = false,
 89:         $defaultValue = []
 90:     ) {
 91:         return new Select($table, $fields, $where, $fetchStyle, $fetchFlat, $defaultValue);
 92:     }
 93: 
 94:     /**
 95:      * changes values of existing data in a PDO connected resource
 96:      * @param string $table table with which you wish to update
 97:      * @param array $data a single level associative array containing keys that
 98:      * represent the fields and values that represent new values to be updated
 99:      * into the table
100:      * @param WhereStatementInterface $where an object that is designed to
101:      * return a where statement to limit the data that is affected by the update
102:      * @return Update the update object responsible to handling the update of
103:      * persistent records.
104:      * @since v1.0.0
105:      */
106:     public function update($table, array $data, WhereStatementInterface $where = null)
107:     {
108:         return new Update($table, $data, $where);
109:     }
110: 
111:     /**
112:      * removes records from a PDO connected resource
113:      * @param string $table table with which you wish to remove records from
114:      * @param WhereStatementInterface $where  an object that is designed to
115:      * return a where statement to limit the data that is affected by the delete
116:      * @return Delete the delete object responsible for handling removal of
117:      * persistent records
118:      * @since v1.0.0
119:      */
120:     public function delete($table, WhereStatementInterface $where = null)
121:     {
122:         return new Delete($table, $where);
123:     }
124: }
125: 
API documentation generated by ApiGen