DB_QueryTool
[ class tree: DB_QueryTool ] [ index: DB_QueryTool ] [ all elements ]

Class: DB_QueryTool_Query

Source Location: /DB_QueryTool-1.1.0/QueryTool/Query.php

Class Overview


DB_QueryTool_Query class


Author(s):

Copyright:

  • 2003-2007 Wolfram Kriesing, Paolo Panto, Lorenzo Alberton

Variables

Methods


Child classes:

DB_QueryTool_EasyJoin
DB_QueryTool_EasyJoin class

Inherited Variables

Inherited Methods


Class Details

[line 46]
DB_QueryTool_Query class

This class should be extended



[ Top ]


Class Variables

$db =  null

[line 68]

  • Var: db-object, a PEAR::DB instance

Type:   object the


[ Top ]

$primaryCol =  'id'

[line 53]

  • Var: the name of the primary column

Type:   string


[ Top ]

$sequenceName =  null

[line 63]

  • Var: the name of the sequence for this table

Type:   string


[ Top ]

$table =  ''

[line 58]

  • Var: the current table the class works on

Type:   string


[ Top ]

$tableSpec = array()

[line 171]

this array contains information about the tables those are
  • 'name' => the real table name
  • 'shortName' => the short name used, so that when moving the table i.e.

onto a provider's db and u have to rename the tables to longer names this name will be relevant, i.e. when autoJoining, i.e. a table name on your local machine is: 'user' but online it has to be 'applName_user' then the shortName will be used to determine if a column refers to another table, if the colName is 'user_id', it knows the shortName 'user' refers to the table 'applName_user'


Type:   mixed


[ Top ]



Method Detail

DB_QueryTool_Query (Constructor)   [line 258]

DB_QueryTool_Query DB_QueryTool_Query( [mixed $dsn = false], [array $options = array()])

  • Author: Wolfram Kriesing <wk@visionp.de>
  • Version: 2002/04/02
  • Access: public

Parameters:

mixed   $dsn   —  DSN string, DSN array or DB object
array   $options   — 

[ Top ]

add   [line 700]

mixed add( array $newData)

add a new member in the DB
  • Return: the inserted id on success, or false otherwise
  • Author: Wolfram Kriesing <wk@visionp.de>
  • Version: 2002/04/02
  • Access: public

Parameters:

array   $newData   —  contains the new data that shall be saved in the DB

[ Top ]

addHaving   [line 1157]

void addHaving( [string $what = '*'], [string $connectString = ' AND '])

Extend the current having clause. This is very useful, when you are building this clause from different places and don't want to overwrite the currently set having clause, but extend it.
  • Access: public

Parameters:

string   $what   —  this is a having clause, i.e. 'column' or 'table.column' or 'MAX(column)'
string   $connectString   —  the connection string, which usually stays the default, which is ',' (a comma)

[ Top ]

addJoin   [line 1321]

void addJoin( string $table, string $where, [string $type = 'default'])

adds a table and a where clause that shall be used for the join

instead of calling setJoin(array(table1,table2),'<where clause1> AND <where clause2>') you can also call setJoin(table1,'<where clause1>') addJoin(table2,'<where clause2>') or where it makes more sense is to build a query which is made out of a left join and a standard join setLeftJoin(table1,'<where clause1>') // results in ... FROM $this->table LEFT JOIN table ON <where clause1> addJoin(table2,'<where clause2>') // results in ... FROM $this->table,table2 LEFT JOIN table ON <where clause1> WHERE <where clause2>

  • Access: public

Parameters:

string   $table   —  the table to be joined
string   $where   —  the where clause for the join
string   $type   —  the join type

[ Top ]

addLeftJoin   [line 1231]

void addLeftJoin( string $table, string $where, [string $type = 'left'])

  • Access: public

Parameters:

string   $table   —  the table(s) to be left-joined
string   $where   —  the where clause for the join
string   $type   —  join type

[ Top ]

addMultiple   [line 753]

mixed addMultiple( array $data)

adds multiple new members in the DB
  • Return: the inserted ids on success, or false otherwise
  • Author: Wolfram Kriesing <wk@visionp.de>
  • Version: 2002/07/17
  • Access: public

Parameters:

array   $data   —  contains an array of new data that shall be saved in the DB the key-value pairs have to be the same for all the data!!!

[ Top ]

addOrder   [line 1087]

void addOrder( [string $orderCondition = ''], [boolean $desc = false])

Add a order parameter to the query.
  • Author: Wolfram Kriesing <wk@visionp.de>
  • Version: 2003/05/28
  • Access: public

Parameters:

string   $orderCondition   —  the where condition, this can be complete like 'X=7 AND Y=8'
boolean   $desc   —  sorting order (TRUE => ASC, FALSE => DESC)

[ Top ]

addSelect   [line 1428]

void addSelect( [string $what = '*'], [string $connectString = ','])

add a string to the select part of the query

add a string to the select-part of the query and connects it to an existing string using the $connectString, which by default is a comma. (SELECT xxx FROM - xxx is the select-part of a query)

  • Author: Wolfram Kriesing <wk@visionp.de>
  • Version: 2003/01/08
  • Access: public

Parameters:

string   $what   —  the string that shall be added to the select-part
string   $connectString   —  the string to connect the new string with the existing one

[ Top ]

addWhere   [line 1017]

void addWhere( string $where, [string $condition = 'AND'])

only adds a string to the where clause
  • Author: Wolfram Kriesing <wk@visionp.de>
  • Version: 2002/07/22
  • Access: public

Parameters:

string   $where   —  the where clause to add to the existing one
string   $condition   —  the condition for how to concatenate the new where clause to the existing one

[ Top ]

addWhereSearch   [line 1043]

void addWhereSearch( string $column, string $string, [string $condition = 'AND'])

add a where-like clause which works like a search for the given string

i.e. calling it like this: $this->addWhereSearch('name', 'otto hans') produces a where clause like this one LOWER(name) LIKE "%otto%hans%" so the search finds the given string

  • Author: Wolfram Kriesing <wk@visionp.de>
  • Version: 2002/08/14
  • Access: public

Parameters:

string   $column   —  the column to search in for
string   $string   —  the string to search for
string   $condition   —  the condition

[ Top ]

connect   [line 295]

void connect( mixed $dsn, [array $options = array()])

use this method if you want to connect manually

Parameters:

mixed   $dsn   —  DSN string, DSN array or DB object
array   $options   — 

[ Top ]

debug   [line 1651]

void debug( string $string)

overwrite this method and i.e. print the query $string to see the final query
  • Access: public

Parameters:

string   $string   —  the query mostly

[ Top ]

execute   [line 2277]

resultSet execute( [string $query = null], [string $method = 'getAll'])

  • Return: or false on error
  • Author: Wolfram Kriesing <wk@visionp.de>
  • Version: 2002/07/11
  • Access: public

Parameters:

string   $query   — 
string   $method   —  method

[ Top ]

get   [line 357]

mixed get( integer $id, [string $column = ''])

get the data of a single entry if the second parameter is only one column the result will be returned directly not as an array!
  • Return: (1) an array of the retrieved data (2) if the second parameter is given and its only one column, only this column's data will be returned (3) false in case of failure
  • Author: Wolfram Kriesing <wk@visionp.de>
  • Version: 2002/03/05
  • Access: public

Parameters:

integer   $id   —  the id of the element to retrieve
string   $column   —  if this is given only one row shall be returned, directly, not an array

[ Top ]

getAll   [line 440]

mixed getAll( [int $from = 0], [int $count = 0], [string $method = 'getAll'])

get all entries from the DB for sorting use setOrder!!!, the last 2 parameters are deprecated
  • Return: an array of the retrieved data, or false in case of failure when failing an error is set in $this->_error
  • Author: Wolfram Kriesing <wk@visionp.de>
  • Version: 2002/03/05
  • Access: public

Parameters:

int   $from   —  to start from
int   $count   —  the number of rows to show
string   $method   —  the DB-method to use, i dont know if we should leave this param here ...

[ Top ]

getCol   [line 472]

mixed getCol( [string $column = null], [int $from = 0], [int $count = 0])

this method only returns one column, so the result will be a one dimensional array

this does also mean that using setSelect() should be set to *one* column, the one you want to have returned a most common use case for this could be: $table->setSelect('id'); $ids = $table->getCol(); OR $ids = $table->getCol('id'); so ids will be an array with all the id's

  • Return: an array of the retrieved data, or false in case of failure when failing an error is set in $this->_error
  • Author: Wolfram Kriesing <wk@visionp.de>
  • Version: 2003/02/25
  • Access: public

Parameters:

string   $column   —  the column that shall be retrieved
int   $from   —  to start from
int   $count   —  the number of rows to show

[ Top ]

getCount   [line 500]

mixed getCount( )

get the number of entries
  • Return: an array of the retrieved data, or false in case of failure when failing an error is set in $this->_error
  • Author: Wolfram Kriesing <wk@visionp.de>
  • Version: 2002/04/02
  • Access: public

[ Top ]

getDbInstance   [line 316]

reference &getDbInstance( )

  • Return: to current DB instance

[ Top ]

getDefaultValues   [line 544]

array getDefaultValues( )

return an empty element where all the array elements do already exist corresponding to the columns in the DB
  • Return: an empty, or pre-initialized element
  • Author: Wolfram Kriesing <wk@visionp.de>
  • Version: 2002/04/05
  • Access: public

[ Top ]

getDontSelect   [line 1469]

string getDontSelect( )

  • Access: public

[ Top ]

getEmptyElement   [line 562]

void getEmptyElement( )

this is just for BC
  • Deprecated:

[ Top ]

getGroup   [line 1394]

string getGroup( )

gets the group condition which is used for the current instance
  • Return: the group condition
  • Author: Wolfram Kriesing <wk@visionp.de>
  • Version: 2002/07/22
  • Access: public

[ Top ]

getHaving   [line 1140]

string getHaving( )

gets the having definition which is used for the current instance
  • Return: the having definition
  • Author: Johannes Schaefer <johnschaefer@gmx.de>
  • Version: 2003/06/05
  • Access: public

[ Top ]

getIndex   [line 2484]

string getIndex( )

  • Return: index
  • Author: Wolfram Kriesing <wk@visionp.de>
  • Version: 2002/07/11
  • Access: public

[ Top ]

getJoin   [line 1270]

array getJoin( [string $what = null])

gets the join-condition
  • Return: gets the join parameters
  • Access: public

Parameters:

string   $what   —  [null|''|'table'|'tables'|'right'|'left'|'inner']

[ Top ]

getLimit   [line 965]

array getLimit( )

gets query limits
  • Return: (start index, number of results)
  • Access: public

[ Top ]

getMultiple   [line 393]

mixed getMultiple( array $ids, [string $column = ''])

gets the data of the given ids
  • Return: an array of the retrieved data, or false in case of failure when failing an error is set in $this->_error
  • Author: Wolfram Kriesing <wk@visionp.de>
  • Version: 2002/04/23
  • Access: public

Parameters:

array   $ids   —  this is an array of ids to retrieve
string   $column   —  the column to search in for

[ Top ]

getOne   [line 418]

mixed getOne( )

get the first value of the first row
  • Return: (1) a scalar value in case of success (2) false in case of failure
  • Access: public

[ Top ]

getOption   [line 1535]

string getOption( string $option)

  • Return: value of the option
  • Access: public

Parameters:

string   $option   —  name of the option to retrieve

[ Top ]

getOrder   [line 1108]

string getOrder( )

gets the order condition which is used for the current instance
  • Return: the order condition, this can be complete like 'ID,TIMESTAMP DESC'
  • Author: Wolfram Kriesing <wk@visionp.de>
  • Version: 2002/05/16
  • Access: public

[ Top ]

getQueryString   [line 575]

string getQueryString( )

Render the current query and return it as a string.
  • Return: the current query

[ Top ]

getSelect   [line 1445]

string getSelect( )

  • Access: public

[ Top ]

getTable   [line 1360]

string getTable( )

gets the table this class is currently working on
  • Return: the table name
  • Author: Wolfram Kriesing <wk@visionp.de>
  • Version: 2002/07/11
  • Access: public

[ Top ]

getTableShortName   [line 1842]

string getTableShortName( string $table)

Gets the short name for a table

get the short name for a table, this is needed to properly build the 'AS' parts in the select query

  • Return: the table's short name
  • Access: public

Parameters:

string   $table   —  the real table name

[ Top ]

getTableSpec   [line 1869]

array getTableSpec( [array $shortNameIndexed = true], [boolean $tables = array()])

gets the tableSpec either indexed by the short name or the name returns the array for the tables given as parameter or if no parameter given for all tables that exist in the tableSpec
  • Return: the tableSpec indexed
  • Access: public

Parameters:

array   $shortNameIndexed   —  table names (not the short names!)
boolean   $tables   —  if true the table is returned indexed by the shortName otherwise indexed by the name

[ Top ]

getWhere   [line 999]

string getWhere( )

gets the where condition which is used for the current instance
  • Return: the where condition, this can be complete like 'X=7 AND Y=8'
  • Author: Wolfram Kriesing <wk@visionp.de>
  • Version: 2002/04/22
  • Access: public

[ Top ]

metadata   [line 1671]

resultSet metadata( [string $table = ''])

!!!! query COPIED FROM db_oci8.inc - from PHPLIB !!!!
  • Return: or false on error
  • Version: 2001/09
  • See: db_oci8.inc - PHPLIB
  • Access: public

Parameters:

string   $table   — 

[ Top ]

remove   [line 831]

boolean remove( mixed $data, [string $whereCol = ''])

removes a member from the DB
  • Author: Wolfram Kriesing <wk@visionp.de>
  • Version: 2002/04/08
  • Access: public

Parameters:

mixed   $data   —  integer/string - the value of the column that shall be removed array - multiple columns that shall be matched, the second parameter will be ignored
string   $whereCol   —  the column to match the data against, only if $data is not an array

[ Top ]

removeAll   [line 870]

resultSet removeAll( )

empty a table
  • Return: or false on error [execute() result]
  • Author: Wolfram Kriesing <wk@visionp.de>
  • Version: 2002/06/17
  • Access: public

[ Top ]

removeMultiple   [line 888]

resultSet removeMultiple( array $ids, [ $colName = ''])

remove the datasets with the given ids
  • Return: or false on error [execute() result]
  • Author: Wolfram Kriesing <wk@visionp.de>
  • Version: 2002/04/24
  • Access: public

Parameters:

array   $ids   —  the ids to remove
   $colName   — 

[ Top ]

removePrimary   [line 920]

boolean removePrimary( integer $id, string $colName, object just $atLeastOneObject)

removes a member from the DB and calls the remove methods of the given objects so all rows in another table that refer to this table are erased too
  • Author: Wolfram Kriesing <wk@visionp.de>
  • Version: 2002/04/08
  • Access: public

Parameters:

integer   $id   —  the value of the primary key
string   $colName   —  the column name of the tables with the foreign keys
object just   $atLeastOneObject   —  for convinience, so nobody forgets to call this method with at least one object as a parameter

[ Top ]

reset   [line 1485]

void reset( [array $what = array()])

reset all the set* settings; with no parameter given, it resets them all.
  • Author: Wolfram Kriesing <wk@visionp.de>
  • Version: 2002/09/16
  • Access: public

Parameters:

array   $what   — 

[ Top ]

returnResult   [line 2379]

mixed returnResult( object reference $result)

Return the chosen result type
  • Return: [boolean, array or object]
  • Version: 2004/04/28
  • Access: public

Parameters:

object reference   $result   — 

[ Top ]

save   [line 644]

mixed save( array $data)

save data, calls either update or add if the primaryCol is given in the data this method knows that the data passed to it are meant to be updated (call 'update'), otherwise it will call the method 'add'.

If you dont like this behaviour simply stick with the methods 'add' and 'update' and ignore this one here. This method is very useful when you have validation checks that have to be done for both adding and updating, then you can simply overwrite this method and do the checks in here, and both cases will be validated first.

  • Return: the data returned by either add or update-method
  • Author: Wolfram Kriesing <wk@visionp.de>
  • Version: 2002/03/11
  • Access: public

Parameters:

array   $data   —  contains the new data that shall be saved in the DB

[ Top ]

setDbInstance   [line 332]

void setDbInstance( object a &$dbh)

Setup using an existing connection.

this also sets the DB_FETCHMODE_ASSOC since this class needs this to be set!


Parameters:

object a   &$dbh   —  reference to an existing DB-object

[ Top ]

setDontSelect   [line 1457]

void setDontSelect( [string $what = ''])

  • Access: public

Parameters:

string   $what   — 

[ Top ]

setErrorCallback   [line 2531]

void setErrorCallback( [string $param = ''])

set both callbacks
  • Access: public

Parameters:

string   $param   — 

[ Top ]

setErrorLogCallback   [line 2543]

void setErrorLogCallback( [string $param = ''])


Parameters:

string   $param   — 

[ Top ]

setErrorSetCallback   [line 2555]

void setErrorSetCallback( [string $param = ''])


Parameters:

string   $param   — 

[ Top ]

setGroup   [line 1376]

void setGroup( [string $group = ''])

sets the group-by condition
  • Author: Wolfram Kriesing <wk@visionp.de>
  • Version: 2002/07/22
  • Access: public

Parameters:

string   $group   —  the group condition

[ Top ]

setHaving   [line 1124]

void setHaving( [string $having = ''])

sets the having definition

Parameters:

string   $having   —  the having definition

[ Top ]

setIndex   [line 2455]

void setIndex( [string $key = null])

format the result to be indexed by $key

NOTE: be careful, when using this you should be aware, that if you use an index which's value appears multiple times you may loose data since a key cant exist multiple times!! the result for a result to be indexed by a key(=columnName) (i.e. 'relationtoMe') which's values are 'brother' and 'sister' or alike normally returns this: $res['brother'] = array('name'=>'xxx') $res['sister'] = array('name'=>'xxx') but if the column 'relationtoMe' contains multiple entries for 'brother' then the returned dataset will only contain one brother, since the value from the column 'relationtoMe' is used and which 'brother' you get depends on a lot of things, like the sortorder, how the db saves the data, and whatever else

you can also set indexes which depend on 2 columns, simply pass the parameters like 'table1.id,table2.id' it will be used as a string for indexing the result and the index will be built using the 2 values given, so a possible index might be '1,2' or '2108,29389' this way you can access data which have 2 primary keys. Be sure to remember that the index is a string!

  • Author: Wolfram Kriesing <wk@visionp.de>
  • Version: 2002/07/11
  • Access: public

Parameters:

string   $key   — 

[ Top ]

setJoin   [line 1179]

void setJoin( [mixed $table = null], [string $where = null], [ $joinType = 'default'])

sets a join-condition
  • Author: Wolfram Kriesing <wk@visionp.de>
  • Version: 2002/06/10
  • Access: public

Parameters:

mixed   $table   —  either a string or an array that contains the table(s) to join on the current table
string   $where   —  the where clause for the join
   $joinType   — 

[ Top ]

setLeftJoin   [line 1216]

void setLeftJoin( [string $table = null], [string $where = null])

if you do a left join on $this->table you will get all entries

from $this->table, also if there are no entries for them in the joined table if both parameters are not given the left-join will be removed NOTE: be sure to only use either a right or a left join

  • Author: Wolfram Kriesing <wk@visionp.de>
  • Version: 2002/07/22
  • Access: public

Parameters:

string   $table   —  the table(s) to be left-joined
string   $where   —  the where clause for the join

[ Top ]

setLimit   [line 947]

void setLimit( [integer $from = 0], [integer $count = 0])

sets query limits
  • Access: public

Parameters:

integer   $from   —  start index
integer   $count   —  number of results

[ Top ]

setOption   [line 1522]

void setOption( string $option, mixed $value)

set mode the class shall work in currently we have the modes: 'raw' does not quote the data before building the query
  • Author: Wolfram Kriesing <wk@visionp.de>
  • Version: 2002/09/17
  • Access: public

Parameters:

string   $option   —  the mode to be set
mixed   $value   —  the value of the mode

[ Top ]

setOrder   [line 1070]

void setOrder( [string $orderCondition = ''], [boolean $desc = false])

sets the order condition which is used for the current instance
  • Author: Wolfram Kriesing <wk@visionp.de>
  • Version: 2002/05/16
  • Access: public

Parameters:

string   $orderCondition   —  the where condition, this can be complete like 'X=7 AND Y=8'
boolean   $desc   —  sorting order (TRUE => ASC, FALSE => DESC)

[ Top ]

setRightJoin   [line 1255]

void setRightJoin( [string $table = null], [string $where = null])

see setLeftJoin for further explaination on what a left/right join is NOTE: be sure to only use either a right or a left join

Parameters:

string   $table   —  the table(s) to be right-joined
string   $where   —  the where clause for the join

[ Top ]

setSelect   [line 1407]

void setSelect( [string $what = '*'])

limit the result to return only the columns given in $what
  • Access: public

Parameters:

string   $what   —  fields that shall be selected

[ Top ]

setTable   [line 1344]

void setTable( string $table)

sets the table this class is currently working on
  • Author: Wolfram Kriesing <wk@visionp.de>
  • Version: 2002/07/11
  • Access: public

Parameters:

string   $table   —  the table name

[ Top ]

setWhere   [line 981]

void setWhere( [string $whereCondition = ''])

sets the where condition which is used for the current instance
  • Author: Wolfram Kriesing <wk@visionp.de>
  • Version: 2002/04/16
  • Access: public

Parameters:

string   $whereCondition   —  the where condition, this can be complete like 'X=7 AND Y=8'

[ Top ]

update   [line 665]

mixed update( array $newData)

update the member data of a data set
  • Return: true on success, or false otherwise
  • Author: Wolfram Kriesing <wk@visionp.de>
  • Version: 2002/03/06
  • Access: public

Parameters:

array   $newData   —  contains the new data that shall be saved in the DB the id has to be given in the field with the key 'ID'

[ Top ]

useResult   [line 2502]

void useResult( [string $type = 'array'])

Choose the type of the returned result
  • Version: 2004/04/28
  • Access: public

Parameters:

string   $type   —  ['array' | 'object' | 'none'] For BC reasons, $type=true is equal to 'array', $type=false is equal to 'none'

[ Top ]

writeLog   [line 2318]

void writeLog( [string $text = 'START'])

Write events to the logfile.

It does some additional work, like time measuring etc. to see some additional info

  • Access: public

Parameters:

string   $text   — 

[ Top ]

_checkColumns   [line 1614]

void _checkColumns( string $newData, [integer $method = 'unknown'])

checks if the columns which are given as the array's indexes really exist if not it will be unset anyway
  • Author: Wolfram Kriesing <wk@visionp.de>
  • Version: 2002/04/16
  • Access: public

Parameters:

string   $newData   —  the actual message, first word should always be the method name, to build the message like this: className::methodname
integer   $method   —  the line number

[ Top ]

_makeIndexed   [line 2406]

mixed &_makeIndexed( &$data, mixed $data)

  • Return: or array $indexedData
  • Author: Wolfram Kriesing <wk@visionp.de>
  • Version: 2002/07/11
  • Access: public

Parameters:

mixed   $data   — 
   &$data   — 

[ Top ]


Documentation generated on Mon, 11 Mar 2019 14:55:24 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.