Class TTableGateway
TTableGateway class provides several find methods to get data from the database and update, insert, and delete methods.
Each method maps the input parameters into a SQL call and executes the SQL against a database connection. The TTableGateway is stateless (with respect to the data and data objects), as its role is to push data back and forth.
Example usage:
//create a connection $dsn = 'pgsql:host=localhost;dbname=test'; $conn = new TDbConnection($dsn, 'dbuser','dbpass'); //create a table gateway for table/view named 'address' $table = new TTableGateway('address', $conn); //insert a new row, returns last insert id (if applicable) $id = $table->insert(array('name'=>'wei', 'phone'=>'111111')); $record1 = $table->findByPk($id); //find inserted record //finds all records, returns an iterator $records = $table->findAll(); print_r($records->readAll()); //update the row $table->updateByPk($record1, $id);
All methods that may return more than one row of data will return an TDbDataReader iterator.
The OnCreateCommand event is raised when a command is prepared and parameter binding is completed. The parameter object is a TDataGatewayEventParameter of which the TDataGatewayEventParameter::getCommand Command property can be inspected to obtain the sql query to be executed.
The OnExecuteCommand event is raised when a command is executed and the result from the database was returned. The parameter object is a TDataGatewayResultEventParameter of which the TDataGatewayEventParameter::getResult Result property contains the data return from the database. The data returned can be changed by setting the TDataGatewayEventParameter::setResult Result property.
$table->OnCreateCommand[] = 'log_it'; //any valid PHP callback statement $table->OnExecuteCommand[] = array($obj, 'method_name'); // calls 'method_name' on $obj function log_it($sender, $param) { var_dump($param); //TDataGatewayEventParameter object. }
- TComponent
-
TTableGateway
Copyright: Copyright © 2005-2014 PradoSoft
License: http://www.pradosoft.com/license/
Author: Wei Zhuo <weizho[at]gmail[dot]com>
Version: $Id$
Since: 3.1
Located at Data/DataGateway/TTableGateway.php
public
|
#
__construct( string|
Creates a new generic table gateway for a given table or view name and a database connection. |
protected
|
|
protected
|
|
public
|
|
public
|
|
protected
|
|
public
|
#
onCreateCommand(
Raised when a command is prepared and parameter binding is completed. The parameter object is TDataGatewayEventParameter of which the TDataGatewayEventParameter::getCommand Command property can be inspected to obtain the sql query to be executed. |
public
|
#
onExecuteCommand(
Raised when a command is executed and the result from the database was returned. The parameter object is TDataGatewayResultEventParameter of which the TDataGatewayEventParameter::getResult Result property contains the data return from the database. The data returned can be changed by setting the TDataGatewayEventParameter::setResult Result property. |
protected
|
|
public
|
|
public
array
|
#
findBySql( string $sql, array $parameters = array() )
Execute arbituary sql command with binding parameters. |
public
|
#
findAllBySql( string $sql, array $parameters = array() )
Execute arbituary sql command with binding parameters. |
public
array
|
#
find( string|
Find one single record that matches the criteria. |
public
|
#
findAll( string|
Accepts same parameters as find(), but returns TDbDataReader instead. |
public
array
|
#
findByPk( mixed $keys )
Find one record using only the primary key or composite primary keys. Usage: |
public
|
|
public
integer
|
#
deleteAll( string $criteria, array $parameters = array() )
Delete records from the table with condition given by $where and binding values specified by $parameter argument. This method uses additional arguments as $parameters. E.g. $table->delete('age > ? AND location = ?', $age, $location); |
public
integer
|
|
public
|
|
public
integer
|
#
count( string|
Find the number of records. |
public
integer
|
#
update( array $data, string $criteria, array $parameters = array() )
Updates the table with new name-value pair $data. Each array key must correspond to a column name in the table. The update condition is specified by the $where argument and additional binding values can be specified using the $parameter argument. This method uses additional arguments as $parameters. E.g. $gateway->update($data, 'age > ? AND location = ?', $age, $location); |
public
mixed
|
#
insert( array $data )
Inserts a new record into the table. Each array key must correspond to a column name in the table unless a null value is permitted. |
public
mixed
|
|
protected
|
#
getCriteria( string|
Create a new TSqlCriteria object from a string $criteria. The $args are additional parameters and are used in place of the $parameters if $parameters is not an array and $args is an arrary. |
public
mixed
|
#
__call( string $method, mixed $args )
Dynamic find method using parts of method name as search criteria. Method name starting with "findBy" only returns 1 record. Method name starting with "findAllBy" returns 0 or more records. Method name starting with "deleteBy" deletes records by the trail criteria. The condition is taken as part of the method name after "findBy", "findAllBy" or "deleteBy". |
GLOBAL_RAISE_EVENT_LISTENER
|