ux_t3lib_DB Class Reference

Inheritance diagram for ux_t3lib_DB:

Inheritance graph
[legend]
Collaboration diagram for ux_t3lib_DB:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 __construct ()
 clearCachedFieldInfo ()
 cacheFieldInfo ()
 exec_INSERTquery ($table, $fields_values, $no_quote_fields= '')
 exec_INSERTmultipleRows ($table, array $fields, array $rows, $no_quote_fields=FALSE)
 exec_UPDATEquery ($table, $where, $fields_values, $no_quote_fields= '')
 exec_DELETEquery ($table, $where)
 exec_SELECTquery ($select_fields, $from_table, $where_clause, $groupBy= '', $orderBy= '', $limit= '')
 exec_TRUNCATEquery ($table)
 INSERTquery ($table, $fields_values, $no_quote_fields= '')
 INSERTmultipleRows ($table, array $fields, array $rows, $no_quote_fields=FALSE)
 UPDATEquery ($table, $where, $fields_values, $no_quote_fields= '')
 DELETEquery ($table, $where)
 SELECTquery ($select_fields, $from_table, $where_clause, $groupBy= '', $orderBy= '', $limit= '')
 TRUNCATEquery ($table)
 quoteSelectFields ($select_fields)
 quoteFieldNames ($select_fields)
 quoteFromTables ($from_table)
 quoteWhereClause ($where_clause)
 fullQuoteStr ($str, $table)
 quoteStr ($str, $table)
 quoteName ($name, $handlerKey=NULL, $useBackticks=FALSE)
 MetaType ($type, $table, $max_length=-1)
 MySQLMetaType ($t)
 MySQLActualType ($meta)
 sql_error ()
 sql_errno ()
 sql_num_rows (&$res)
 sql_fetch_assoc (&$res)
 sql_fetch_row (&$res)
 sql_free_result (&$res)
 sql_insert_id ()
 sql_affected_rows ()
 sql_data_seek (&$res, $seek)
 sql_field_metatype ($table, $field)
 sql_field_type (&$res, $pointer)
 sql ($db, $query)
 sql_query ($query)
 sql_pconnect ($TYPO3_db_host, $TYPO3_db_username, $TYPO3_db_password)
 sql_select_db ($TYPO3_db)
 admin_get_dbs ()
 admin_get_tables ()
 admin_get_fields ($tableName)
 admin_get_keys ($tableName)
 admin_get_charsets ()
 admin_query ($query)
 handler_getFromTableList ($tableList)
 handler_init ($handlerKey)
 runningNative ()
 runningADOdbDriver ($driver)
 debugHandler ($function, $execTime, $inData)
 debug_WHERE ($table, $where, $script= '')
 debug_log ($query, $ms, $data, $join, $errorFlag, $script='')
 debug_explain ($query)

Public Attributes

 $printErrors = FALSE
 $debug = FALSE
 $conf = array()
 $mapping = array()
 $table2handlerKeys = array()
 $handlerCfg
 $handlerInstance = array()
 $lastHandlerKey = ''
 $lastQuery = ''
 $lastParsedAndMappedQueryArray = array()
 $resourceIdToTableNameMap = array()
 $cache_handlerKeyFromTableList = array()
 $cache_mappingFromTableList = array()
 $cache_autoIncFields = array()
 $cache_fieldType = array()
 $cache_primaryKeys = array()
 $SQLparser
 $Installer

Protected Member Functions

 initInternalVariables ()
 analyzeFields ($parsedExtSQL)
 mapCachedFieldInfo ($fieldInfo)
 exec_query (array $queryParts)
 quoteSELECTsubquery (array $components)
 _quoteFieldNames (array $select_fields)
 _quoteFromTables (array $from_table)
 _quoteWhereClause (array $where_clause)
 quoteGroupBy ($groupBy)
 quoteOrderBy ($orderBy)
 map_needMapping ($tableList, $fieldMappingOnly=FALSE)
 map_assocArray ($input, $tables, $rev=FALSE)
 map_remapSELECTQueryParts (&$select_fields, &$from_table, &$where_clause, &$groupBy, &$orderBy)
 map_sqlParts (&$sqlPartArray, $defaultTable)
 map_genericQueryParsed (&$parsedQuery)
 map_fieldNamesInArray ($table, &$fieldArray)

Detailed Description

Definition at line 116 of file class.ux_t3lib_db.php.


Constructor & Destructor Documentation

ux_t3lib_DB::__construct (  ) 

Constructor. Creates SQL parser object and imports configuration from $TYPO3_CONF_VARS['EXTCONF']['dbal']

Definition at line 175 of file class.ux_t3lib_db.php.

References $GLOBALS, initInternalVariables(), and t3lib_div::makeInstance().


Member Function Documentation

ux_t3lib_DB::_quoteFieldNames ( array $  select_fields  )  [protected]

Quotes field (and table) names in a SQL SELECT clause acccording to DB rules

Parameters:
array $select_fields The parsed fields to quote
Returns:
array
See also:
quoteFieldNames()

Definition at line 1182 of file class.ux_t3lib_db.php.

References $key, _quoteWhereClause(), quoteFieldNames(), and quoteName().

Referenced by quoteFieldNames(), and quoteSELECTsubquery().

ux_t3lib_DB::_quoteFromTables ( array $  from_table  )  [protected]

Quotes table names in a SQL FROM clause acccording to DB rules

Parameters:
array $from_table The parsed FROM clause to quote
Returns:
array
See also:
quoteFromTables()

Definition at line 1235 of file class.ux_t3lib_db.php.

References quoteName().

Referenced by quoteFromTables(), and quoteSELECTsubquery().

ux_t3lib_DB::_quoteWhereClause ( array $  where_clause  )  [protected]

Quotes field names in a SQL WHERE clause acccording to DB rules

Parameters:
array $where_clause The parsed WHERE clause to quote
Returns:
array
See also:
quoteWhereClause()

Definition at line 1283 of file class.ux_t3lib_db.php.

References t3lib_div::inList(), quoteFieldNames(), quoteName(), and quoteSELECTsubquery().

Referenced by _quoteFieldNames(), quoteSELECTsubquery(), and quoteWhereClause().

ux_t3lib_DB::admin_get_charsets (  ) 

mysql() wrapper function, used by the Install Tool.

Returns:
array

Reimplemented from t3lib_DB.

Definition at line 2299 of file class.ux_t3lib_db.php.

ux_t3lib_DB::admin_get_dbs (  ) 

Listing databases from current MySQL connection. NOTICE: It WILL try to select those databases and thus break selection of current database. Use in Install Tool only! Usage count/core: 1

Returns:
array Each entry represents a database name

Reimplemented from t3lib_DB.

Definition at line 2022 of file class.ux_t3lib_db.php.

References $row, and sql_select_db().

ux_t3lib_DB::admin_get_fields ( tableName  ) 

Returns information about each field in the $table (quering the DBMS) In a DBAL this should look up the right handler for the table and return compatible information This function is important not only for the Install Tool but probably for DBALs as well since they might need to look up table specific information in order to construct correct queries. In such cases this information should probably be cached for quick delivery

Parameters:
string Table name
Returns:
array Field information in an associative array with fieldname => field row

Reimplemented from t3lib_DB.

Definition at line 2125 of file class.ux_t3lib_db.php.

References handler_getFromTableList(), map_needMapping(), MetaType(), and MySQLActualType().

ux_t3lib_DB::admin_get_keys ( tableName  ) 

Returns information about each index key in the $table (quering the DBMS) In a DBAL this should look up the right handler for the table and return compatible information

Parameters:
string Table name
Returns:
array Key information in a numeric array

Reimplemented from t3lib_DB.

Definition at line 2194 of file class.ux_t3lib_db.php.

References handler_getFromTableList(), and map_needMapping().

ux_t3lib_DB::admin_get_tables (  ) 

Returns the list of tables from the system (quering the DBMSs) It looks up all tables from the DBMS of the _DEFAULT handler and then add all tables *configured* to be managed by other handlers

When fetching the tables, it skips tables whose names begin with BIN$, as this is taken as a table coming from the "Recycle Bin" on Oracle.

Returns:
array Tables in an array (tablename is in both key and value)
Todo:
Should the check for Oracle Recycle Bin stuff be moved elsewhere?

Should return table details in value! see t3lib_db::admin_get_tables()

Reimplemented from t3lib_DB.

Definition at line 2063 of file class.ux_t3lib_db.php.

References $key, sql_error(), and sql_fetch_assoc().

ux_t3lib_DB::admin_query ( query  ) 

mysql() wrapper function, used by the Install Tool and EM for all queries regarding management of the database!

Parameters:
string Query to execute
Returns:
pointer Result pointer

Reimplemented from t3lib_DB.

Definition at line 2309 of file class.ux_t3lib_db.php.

References exec_INSERTquery(), exec_TRUNCATEquery(), handler_getFromTableList(), and map_genericQueryParsed().

ux_t3lib_DB::analyzeFields ( parsedExtSQL  )  [protected]

Analyzes fields and adds the extracted information to the field type, auto increment and primary key info caches.

Parameters:
array $parsedExtSQL The output produced by t3lib_install::getFieldDefinitions_fileContent()
Returns:
void
See also:
t3lib_install::getFieldDefinitions_fileContent()

Definition at line 272 of file class.ux_t3lib_db.php.

References MySQLMetaType().

Referenced by cacheFieldInfo().

ux_t3lib_DB::cacheFieldInfo (  ) 

Caches the field information.

Returns:
void

Definition at line 224 of file class.ux_t3lib_db.php.

References $GLOBALS, analyzeFields(), mapCachedFieldInfo(), and t3lib_div::writeFile().

Referenced by initInternalVariables().

ux_t3lib_DB::clearCachedFieldInfo (  ) 

Clears the cached field information file.

Returns:
void

Definition at line 213 of file class.ux_t3lib_db.php.

ux_t3lib_DB::debug_explain ( query  ) 

Perform EXPLAIN query on DEFAULT handler!

Parameters:
string SELECT Query
Returns:
array The Explain result rows in an array
Todo:
Not supporting other than the default handler? And what about DBMS of other kinds than MySQL - support for EXPLAIN?

Definition at line 3157 of file class.ux_t3lib_db.php.

References $res, $row, sql_fetch_assoc(), and sql_query().

Referenced by debugHandler().

ux_t3lib_DB::debug_log ( query,
ms,
data,
join,
errorFlag,
script = '' 
)

Inserts row in the log table

Parameters:
string The current query
integer Execution time of query in milliseconds
array Data to be stored serialized.
string Join string if there IS a join.
integer Error status.
string $script The script calling the logging
Returns:
void

Definition at line 3124 of file class.ux_t3lib_db.php.

References $GLOBALS, and exec_INSERTquery().

Referenced by debugHandler().

ux_t3lib_DB::debug_WHERE ( table,
where,
script = '' 
)

Logs the where clause for debugging purposes.

Parameters:
string $table Table name(s) the query was targeted at
string $where The WHERE clause to be logged
string $script The script calling the logging
Returns:
void

Definition at line 3101 of file class.ux_t3lib_db.php.

References $GLOBALS, and exec_INSERTquery().

Referenced by debugHandler().

ux_t3lib_DB::debugHandler ( function,
execTime,
inData 
)

Debug handler for query execution

Parameters:
string Function name from which this function is called.
string Execution time in ms of the query
array In-data of various kinds.
Returns:
void private

Definition at line 3020 of file class.ux_t3lib_db.php.

References debug_explain(), debug_log(), debug_WHERE(), exec_DELETEquery(), exec_INSERTquery(), exec_SELECTquery(), exec_UPDATEquery(), t3lib_div::inList(), and sql_error().

Referenced by exec_DELETEquery(), exec_INSERTquery(), exec_SELECTquery(), exec_TRUNCATEquery(), and exec_UPDATEquery().

ux_t3lib_DB::DELETEquery ( table,
where 
)

Creates a DELETE SQL-statement for $table where $where-clause Usage count/core: 3

Parameters:
string See exec_DELETEquery()
string See exec_DELETEquery()
Returns:
string Full SQL query for DELETE

Reimplemented from t3lib_DB.

Definition at line 1064 of file class.ux_t3lib_db.php.

References debugOutput, quoteFromTables(), and quoteWhereClause().

Referenced by exec_DELETEquery().

ux_t3lib_DB::exec_DELETEquery ( table,
where 
)

Deletes records from table

Parameters:
string Database tablename
string WHERE clause, eg. "uid=1". NOTICE: You must escape values in this argument with $this->fullQuoteStr() yourself!
Returns:
mixed Result from handler

Reimplemented from t3lib_DB.

Definition at line 619 of file class.ux_t3lib_db.php.

References t3lib_DB::debug(), debugHandler(), DELETEquery(), handler_getFromTableList(), map_needMapping(), map_sqlParts(), t3lib_div::milliseconds(), and sql_error().

Referenced by debugHandler(), and exec_query().

ux_t3lib_DB::exec_INSERTmultipleRows ( table,
array $  fields,
array $  rows,
no_quote_fields = FALSE 
)

Creates and executes an INSERT SQL-statement for $table with multiple rows. This method uses exec_INSERTquery() and is just a syntax wrapper to it.

Parameters:
string Table name
array Field names
array Table rows. Each row should be an array with field values mapping to $fields
string/array See fullQuoteArray()
Returns:
mixed Result from last handler, usually TRUE when success and FALSE on failure

Reimplemented from t3lib_DB.

Definition at line 502 of file class.ux_t3lib_db.php.

References $key, $res, $row, $value, and exec_INSERTquery().

ux_t3lib_DB::exec_INSERTquery ( table,
fields_values,
no_quote_fields = '' 
)

Inserts a record for $table from the array with field/value pairs $fields_values.

Parameters:
string Table name
array Field values as key=>value pairs. Values will be escaped internally. Typically you would fill an array like "$insertFields" with 'fieldname'=>'value' and pass it to this function as argument.
mixed List/array of keys NOT to quote (eg. SQL functions)
Returns:
mixed Result from handler, usually TRUE when success and FALSE on failure

Reimplemented from t3lib_DB.

Definition at line 365 of file class.ux_t3lib_db.php.

References $content, t3lib_DB::debug(), debugHandler(), fullQuoteStr(), handler_getFromTableList(), INSERTquery(), map_assocArray(), map_needMapping(), t3lib_div::milliseconds(), quoteFromTables(), quoteWhereClause(), and sql_error().

Referenced by admin_query(), debug_log(), debug_WHERE(), debugHandler(), exec_INSERTmultipleRows(), and exec_query().

ux_t3lib_DB::exec_query ( array $  queryParts  )  [protected]

Executes a query. EXPERIMENTAL since TYPO3 4.4.

Parameters:
array $queryParts SQL parsed by method parseSQL() of t3lib_sqlparser
Returns:
pointer Result pointer / DBAL object
See also:
ux_t3lib_db::sql_query()

Definition at line 820 of file class.ux_t3lib_db.php.

References $GLOBALS, exec_DELETEquery(), exec_INSERTquery(), exec_SELECTquery(), exec_TRUNCATEquery(), and exec_UPDATEquery().

Referenced by sql_query().

ux_t3lib_DB::exec_SELECTquery ( select_fields,
from_table,
where_clause,
groupBy = '',
orderBy = '',
limit = '' 
)

Selects records from Data Source

Parameters:
string $select_fields List of fields to select from the table. This is what comes right after "SELECT ...". Required value.
string $from_table Table(s) from which to select. This is what comes right after "FROM ...". Required value.
string $where_clause Optional additional WHERE clauses put in the end of the query. NOTICE: You must escape values in this argument with $this->fullQquoteStr() yourself! DO NOT PUT IN GROUP BY, ORDER BY or LIMIT!
string $groupBy Optional GROUP BY field(s), if none, supply blank string.
string $orderBy Optional ORDER BY field(s), if none, supply blank string.
string $limit Optional LIMIT value ([begin,]max), if none, supply blank string.
Returns:
mixed Result from handler. Typically object from DBAL layers.

Reimplemented from t3lib_DB.

Definition at line 686 of file class.ux_t3lib_db.php.

References t3lib_DB::debug(), debugHandler(), handler_getFromTableList(), t3lib_div::intExplode(), map_needMapping(), map_remapSELECTQueryParts(), t3lib_div::milliseconds(), SELECTquery(), and sql_error().

Referenced by debugHandler(), and exec_query().

ux_t3lib_DB::exec_TRUNCATEquery ( table  ) 

Truncates a table.

Parameters:
string Database tablename
Returns:
mixed Result from handler

Reimplemented from t3lib_DB.

Definition at line 762 of file class.ux_t3lib_db.php.

References t3lib_DB::debug(), debugHandler(), handler_getFromTableList(), map_needMapping(), t3lib_div::milliseconds(), sql_error(), and TRUNCATEquery().

Referenced by admin_query(), and exec_query().

ux_t3lib_DB::exec_UPDATEquery ( table,
where,
fields_values,
no_quote_fields = '' 
)

Updates a record from $table

Parameters:
string Database tablename
string WHERE clause, eg. "uid=1". NOTICE: You must escape values in this argument with $this->fullQuoteStr() yourself!
array Field values as key=>value pairs. Values will be escaped internally. Typically you would fill an array like "$updateFields" with 'fieldname'=>'value' and pass it to this function as argument.
mixed List/array of keys NOT to quote (eg. SQL functions)
Returns:
mixed Result from handler, usually TRUE when success and FALSE on failure

Reimplemented from t3lib_DB.

Definition at line 527 of file class.ux_t3lib_db.php.

References $content, t3lib_DB::debug(), debugHandler(), fullQuoteStr(), handler_getFromTableList(), map_assocArray(), map_needMapping(), map_sqlParts(), t3lib_div::milliseconds(), quoteFromTables(), quoteWhereClause(), sql_error(), and UPDATEquery().

Referenced by debugHandler(), and exec_query().

ux_t3lib_DB::fullQuoteStr ( str,
table 
)

Escaping and quoting values for SQL statements.

Parameters:
string Input string
string Table name for which to quote string. Just enter the table that the field-value is selected from (and any DBAL will look up which handler to use and then how to quote the string!).
Returns:
string Output string; Wrapped in single quotes and quotes in the string (" / ') and \ will be backslashed (or otherwise based on DBAL handler)
See also:
quoteStr()

Reimplemented from t3lib_DB.

Definition at line 1399 of file class.ux_t3lib_db.php.

References quoteStr().

Referenced by exec_INSERTquery(), exec_UPDATEquery(), INSERTquery(), and UPDATEquery().

ux_t3lib_DB::handler_getFromTableList ( tableList  ) 

Return the handler key pointing to an appropriate database handler as found in $this->handlerCfg array Notice: TWO or more tables in the table list MUST use the SAME handler key - otherwise a fatal error is thrown! (Logically, no database can possibly join two tables from separate sources!)

Parameters:
string Table list, eg. "pages" or "pages, tt_content" or "pages AS A, tt_content AS B"
Returns:
string Handler key (see $this->handlerCfg array) for table

Definition at line 2393 of file class.ux_t3lib_db.php.

References $key, and handler_init().

Referenced by admin_get_fields(), admin_get_keys(), admin_query(), exec_DELETEquery(), exec_INSERTquery(), exec_SELECTquery(), exec_TRUNCATEquery(), exec_UPDATEquery(), MetaType(), and quoteStr().

ux_t3lib_DB::handler_init ( handlerKey  ) 

Initialize handler (connecting to database)

Parameters:
string Handler key
Returns:
boolean If connection went well, return TRUE
See also:
handler_getFromTableList()

Definition at line 2441 of file class.ux_t3lib_db.php.

References $GLOBALS, t3lib_DB::$link, t3lib_extMgm::extPath(), t3lib_div::getFileAbsFileName(), t3lib_div::makeInstance(), t3lib_div::sysLog(), and t3lib_div::trimExplode().

Referenced by handler_getFromTableList(), and sql_pconnect().

ux_t3lib_DB::initInternalVariables (  )  [protected]

Setting internal variables from $this->conf.

Returns:
void

Definition at line 190 of file class.ux_t3lib_db.php.

References cacheFieldInfo(), and t3lib_DB::debug().

Referenced by __construct().

ux_t3lib_DB::INSERTmultipleRows ( table,
array $  fields,
array $  rows,
no_quote_fields = FALSE 
)

Creates an INSERT SQL-statement for $table with multiple rows. This method will create multiple INSERT queries concatenated with ';'

Parameters:
string Table name
array Field names
array Table rows. Each row should be an array with field values mapping to $fields
string/array See fullQuoteArray()
Returns:
array Full SQL query for INSERT as array of strings (unless $fields_values does not contain any elements in which case it will be FALSE). If BLOB fields will be affected and one is not running the native type, an array will be returned for each row, where 0 => plain SQL, 1 => fieldname/value pairs of BLOB fields.

Reimplemented from t3lib_DB.

Definition at line 958 of file class.ux_t3lib_db.php.

References $key, $row, $value, and INSERTquery().

ux_t3lib_DB::INSERTquery ( table,
fields_values,
no_quote_fields = '' 
)

Creates an INSERT SQL-statement for $table from the array with field/value pairs $fields_values. Usage count/core: 4

Parameters:
string See exec_INSERTquery()
array See exec_INSERTquery()
mixed See exec_INSERTquery()
Returns:
mixed Full SQL query for INSERT as string or array (unless $fields_values does not contain any elements in which case it will be FALSE). If BLOB fields will be affected and one is not running the native type, an array will be returned, where 0 => plain SQL, 1 => fieldname/value pairs of BLOB fields

Reimplemented from t3lib_DB.

Definition at line 884 of file class.ux_t3lib_db.php.

References debugOutput, fullQuoteStr(), quoteFieldNames(), quoteFromTables(), runningNative(), and sql_field_metatype().

Referenced by exec_INSERTquery(), and INSERTmultipleRows().

ux_t3lib_DB::map_assocArray ( input,
tables,
rev = FALSE 
) [protected]

Takes an associated array with field => value pairs and remaps the field names if configured for this table in $this->mapping array. Be careful not to map a field name to another existing fields name (although you can use this to swap fieldnames of course...:-) Observe mapping problems with join-results (more than one table): Joined queries should always prefix the table name to avoid problems with this. Observe that alias fields are not mapped of course (should not be a problem though)

Parameters:
array Input array, associative keys
array Array of tables from the query. Normally just one table; many tables in case of a join. NOTICE: for multiple tables (with joins) there MIGHT occur trouble with fields of the same name in the two tables: This function traverses the mapping information for BOTH tables and applies mapping without checking from which table the field really came!
boolean If TRUE, reverse direction. Default direction is to map an array going INTO the database (thus mapping TYPO3 fieldnames to PHYSICAL field names!)
Returns:
array Output array, with mapped associative keys.

Definition at line 2641 of file class.ux_t3lib_db.php.

References $value.

Referenced by exec_INSERTquery(), exec_UPDATEquery(), and sql_fetch_assoc().

ux_t3lib_DB::map_fieldNamesInArray ( table,
&$  fieldArray 
) [protected]

Re-mapping field names in array

Parameters:
string (TYPO3) Table name for fields.
array Array of fieldnames to remap. Notice: Passed by reference!
Returns:
void

Definition at line 2979 of file class.ux_t3lib_db.php.

Referenced by map_genericQueryParsed().

ux_t3lib_DB::map_genericQueryParsed ( &$  parsedQuery  )  [protected]

Will do table/field mapping on a general tx_dbal_sqlengine-compliant SQL query (May still not support all query types...)

Parameters:
array Parsed QUERY as from tx_dbal_sqlengine::parseSQL(). NOTICE: Passed by reference!
Returns:
void
See also:
tx_dbal_sqlengine::parseSQL()

... and here support for all other query types should be!

Definition at line 2914 of file class.ux_t3lib_db.php.

References map_fieldNamesInArray(), and map_needMapping().

Referenced by admin_query().

ux_t3lib_DB::map_needMapping ( tableList,
fieldMappingOnly = FALSE 
) [protected]

Checks if mapping is needed for a table(list)

Parameters:
string List of tables in query
boolean If TRUE, it will check only if FIELDs are configured and ignore the mapped table name if any.
Returns:
mixed Returns an array of table names (parsed version of input table) if mapping is needed, otherwise just FALSE.

Definition at line 2592 of file class.ux_t3lib_db.php.

References $key.

Referenced by admin_get_fields(), admin_get_keys(), exec_DELETEquery(), exec_INSERTquery(), exec_SELECTquery(), exec_TRUNCATEquery(), exec_UPDATEquery(), map_genericQueryParsed(), and sql_fetch_assoc().

ux_t3lib_DB::map_remapSELECTQueryParts ( &$  select_fields,
&$  from_table,
&$  where_clause,
&$  groupBy,
&$  orderBy 
) [protected]

Remaps table/field names in a SELECT query's parts Notice: All arguments are passed by reference!

Parameters:
string List of fields to select from the table. This is what comes right after "SELECT ...". Required value.
string Table(s) from which to select. This is what comes right after "FROM ...". Require value.
string Where clause. This is what comes right after "WHERE ...". Can be blank.
string Group by field(s)
string Order by field(s)
Returns:
void
See also:
exec_SELECTquery()

Definition at line 2689 of file class.ux_t3lib_db.php.

References map_sqlParts().

Referenced by exec_SELECTquery().

ux_t3lib_DB::map_sqlParts ( &$  sqlPartArray,
defaultTable 
) [protected]

Generic mapping of table/field names arrays (as parsed by tx_dbal_sqlengine)

Parameters:
array Array with parsed SQL parts; Takes both fields, tables, where-parts, group and order-by. Passed by reference.
string Default table name to assume if no table is found in $sqlPartArray
Returns:
void private
See also:
map_remapSELECTQueryParts()

Definition at line 2753 of file class.ux_t3lib_db.php.

References $key.

Referenced by exec_DELETEquery(), exec_UPDATEquery(), and map_remapSELECTQueryParts().

ux_t3lib_DB::mapCachedFieldInfo ( fieldInfo  )  [protected]

This function builds all definitions for mapped tables and fields

See also:
cacheFieldInfo()

Definition at line 302 of file class.ux_t3lib_db.php.

References $GLOBALS.

Referenced by cacheFieldInfo().

ux_t3lib_DB::MetaType ( type,
table,
max_length = -1 
)

Return MetaType for native field type (ADOdb only!)

Parameters:
string native type as reported by admin_get_fields()
string Table name for which query type string. Important for detection of DBMS handler of the query!
Returns:
string Meta type (currenly ADOdb syntax only, http://phplens.com/lens/adodb/docs-adodb.htm#metatype)

Definition at line 1458 of file class.ux_t3lib_db.php.

References handler_getFromTableList(), and quoteFromTables().

Referenced by admin_get_fields().

ux_t3lib_DB::MySQLActualType ( meta  ) 

Return actual MySQL type for meta field type

Parameters:
string Meta type (currenly ADOdb syntax only, http://phplens.com/lens/adodb/docs-adodb.htm#metatype)
Returns:
string native type as reported as in mysqldump files, uppercase

Definition at line 1536 of file class.ux_t3lib_db.php.

Referenced by admin_get_fields().

ux_t3lib_DB::MySQLMetaType ( t  ) 

Return MetaType for native MySQL field type

Parameters:
string native type as reported as in mysqldump files
Returns:
string Meta type (currenly ADOdb syntax only, http://phplens.com/lens/adodb/docs-adodb.htm#metatype)

Definition at line 1489 of file class.ux_t3lib_db.php.

Referenced by analyzeFields().

ux_t3lib_DB::quoteFieldNames ( select_fields  ) 

Quotes field (and table) names with the quote character suitable for the DB being used

Parameters:
string List of fields to be used in query to DB
Returns:
string Quoted list of fields to be in query to DB

Definition at line 1162 of file class.ux_t3lib_db.php.

References _quoteFieldNames(), and runningNative().

Referenced by _quoteFieldNames(), _quoteWhereClause(), INSERTquery(), quoteSelectFields(), SELECTquery(), and UPDATEquery().

ux_t3lib_DB::quoteFromTables ( from_table  ) 

Quotes table names with the quote character suitable for the DB being used

Parameters:
string List of tables to be selected from DB
Returns:
string Quoted list of tables to be selected from DB

Definition at line 1219 of file class.ux_t3lib_db.php.

References _quoteFromTables(), and runningNative().

Referenced by DELETEquery(), exec_INSERTquery(), exec_UPDATEquery(), INSERTquery(), MetaType(), SELECTquery(), and TRUNCATEquery().

ux_t3lib_DB::quoteGroupBy ( groupBy  )  [protected]

[Describe function...]

Parameters:
[type] $$groupBy: ...
Returns:
[type] ...

Definition at line 1349 of file class.ux_t3lib_db.php.

References quoteName(), and runningNative().

Referenced by SELECTquery().

ux_t3lib_DB::quoteName ( name,
handlerKey = NULL,
useBackticks = FALSE 
)

Quotes an object name (table name, field, ...)

Parameters:
string Object's name
string Handler key
boolean If method NameQuote() is not used, whether to use backticks instead of driver-specific quotes
Returns:
string Properly-quoted object's name

Definition at line 1440 of file class.ux_t3lib_db.php.

Referenced by _quoteFieldNames(), _quoteFromTables(), _quoteWhereClause(), quoteGroupBy(), and quoteOrderBy().

ux_t3lib_DB::quoteOrderBy ( orderBy  )  [protected]

[Describe function...]

Parameters:
[type] $$orderBy: ...
Returns:
[type] ...

Definition at line 1369 of file class.ux_t3lib_db.php.

References quoteName(), and runningNative().

Referenced by SELECTquery().

ux_t3lib_DB::quoteSelectFields ( select_fields  ) 

Quotes field (and table) names with the quote character suitable for the DB being used Use quoteFieldNames instead!

Parameters:
string List of fields to be selected from DB
Returns:
string Quoted list of fields to be selected from DB
Deprecated:
since TYPO3 4.0

Definition at line 1152 of file class.ux_t3lib_db.php.

References quoteFieldNames().

ux_t3lib_DB::quoteSELECTsubquery ( array $  components  )  [protected]

Quotes components of a SELECT subquery.

Parameters:
array $components Array of SQL query components
Returns:
array

Definition at line 1137 of file class.ux_t3lib_db.php.

References _quoteFieldNames(), _quoteFromTables(), and _quoteWhereClause().

Referenced by _quoteWhereClause().

ux_t3lib_DB::quoteStr ( str,
table 
)

Substitution for PHP function "addslashes()" NOTICE: You must wrap the output of this function in SINGLE QUOTES to be DBAL compatible. Unless you have to apply the single quotes yourself you should rather use ->fullQuoteStr()!

Parameters:
string Input string
string Table name for which to quote string. Just enter the table that the field-value is selected from (and any DBAL will look up which handler to use and then how to quote the string!).
Returns:
string Output string; Quotes (" / ') and \ will be backslashed (or otherwise based on DBAL handler)
See also:
quoteStr()

Reimplemented from t3lib_DB.

Definition at line 1412 of file class.ux_t3lib_db.php.

References handler_getFromTableList().

Referenced by fullQuoteStr().

ux_t3lib_DB::quoteWhereClause ( where_clause  ) 

Quotes the field (and table) names within a where clause with the quote character suitable for the DB being used

Parameters:
string A where clause that can e parsed by parseWhereClause
Returns:
string Usable where clause with quoted field/table names

Definition at line 1262 of file class.ux_t3lib_db.php.

References _quoteWhereClause(), and runningNative().

Referenced by DELETEquery(), exec_INSERTquery(), exec_UPDATEquery(), and SELECTquery().

ux_t3lib_DB::runningADOdbDriver ( driver  ) 

Checks whether the ADOdb handler is running with a driver that contains the argument

Parameters:
string $driver Driver name, matched with strstr().
Returns:
boolean True if running with the given driver

Definition at line 2566 of file class.ux_t3lib_db.php.

Referenced by sql_fetch_assoc(), and sql_fetch_row().

ux_t3lib_DB::runningNative (  ) 

Checks whether the DBAL is currently inside an operation running on the "native" DB handler (i.e. MySQL)

Returns:
boolean True if running on "native" DB handler (i.e. MySQL)

Definition at line 2555 of file class.ux_t3lib_db.php.

Referenced by INSERTquery(), quoteFieldNames(), quoteFromTables(), quoteGroupBy(), quoteOrderBy(), quoteWhereClause(), and UPDATEquery().

ux_t3lib_DB::SELECTquery ( select_fields,
from_table,
where_clause,
groupBy = '',
orderBy = '',
limit = '' 
)

Creates a SELECT SQL-statement Usage count/core: 11

Parameters:
string See exec_SELECTquery()
string See exec_SELECTquery()
string See exec_SELECTquery()
string See exec_SELECTquery()
string See exec_SELECTquery()
string See exec_SELECTquery()
Returns:
string Full SQL query for SELECT

Reimplemented from t3lib_DB.

Definition at line 1090 of file class.ux_t3lib_db.php.

References debugOutput, quoteFieldNames(), quoteFromTables(), quoteGroupBy(), quoteOrderBy(), and quoteWhereClause().

Referenced by exec_SELECTquery().

ux_t3lib_DB::sql ( db,
query 
)

Executes query (on DEFAULT handler!) DEPRECATED - use exec_* functions from this class instead!

Parameters:
string Database name
string Query to execute
Returns:
pointer Result pointer
Deprecated:
since TYPO3 4.1

Reimplemented from t3lib_DB.

Definition at line 1913 of file class.ux_t3lib_db.php.

References sql_query().

ux_t3lib_DB::sql_affected_rows (  ) 

Returns the number of rows affected by the last INSERT, UPDATE or DELETE query

Returns:
integer Number of rows affected by last query

Reimplemented from t3lib_DB.

Definition at line 1782 of file class.ux_t3lib_db.php.

ux_t3lib_DB::sql_data_seek ( &$  res,
seek 
)

Move internal result pointer

Parameters:
pointer MySQL result pointer (of SELECT query) / DBAL object
integer Seek result number.
Returns:
boolean Returns TRUE on success or FALSE on failure.

Definition at line 1804 of file class.ux_t3lib_db.php.

References $res.

ux_t3lib_DB::sql_errno (  ) 

Returns the error number on the most recent sql() execution (based on $this->lastHandlerKey)

Returns:
int Handler error number

Reimplemented from t3lib_DB.

Definition at line 1599 of file class.ux_t3lib_db.php.

ux_t3lib_DB::sql_error (  ) 

Returns the error status on the most recent sql() execution (based on $this->lastHandlerKey)

Returns:
string Handler error strings

Reimplemented from t3lib_DB.

Definition at line 1579 of file class.ux_t3lib_db.php.

Referenced by admin_get_tables(), debugHandler(), exec_DELETEquery(), exec_INSERTquery(), exec_SELECTquery(), exec_TRUNCATEquery(), exec_UPDATEquery(), and sql_query().

ux_t3lib_DB::sql_fetch_assoc ( &$  res  ) 

Returns an associative array that corresponds to the fetched row, or FALSE if there are no more rows.

Parameters:
pointer MySQL result pointer (of SELECT query) / DBAL object
Returns:
array Associative array of result row.

Definition at line 1644 of file class.ux_t3lib_db.php.

References $key, $res, $value, map_assocArray(), map_needMapping(), and runningADOdbDriver().

Referenced by admin_get_tables(), and debug_explain().

ux_t3lib_DB::sql_fetch_row ( &$  res  ) 

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows. The array contains the values in numerical indices.

Parameters:
pointer MySQL result pointer (of SELECT query) / DBAL object
Returns:
array Array with result rows.

Definition at line 1697 of file class.ux_t3lib_db.php.

References $key, $res, $value, and runningADOdbDriver().

ux_t3lib_DB::sql_field_metatype ( table,
field 
)

Get the type of the specified field in a result

If the first parameter is a string, it is used as table name for the lookup.

Parameters:
pointer MySQL result pointer (of SELECT query) / DBAL object / table name
integer Field index. In case of ADOdb a string (field name!) FIXME
Returns:
string Returns the type of the specified field index

Definition at line 1829 of file class.ux_t3lib_db.php.

Referenced by INSERTquery(), and UPDATEquery().

ux_t3lib_DB::sql_field_type ( &$  res,
pointer 
)

Get the type of the specified field in a result

If the first parameter is a string, it is used as table name for the lookup.

Parameters:
pointer MySQL result pointer (of SELECT query) / DBAL object / table name
integer Field index. In case of ADOdb a string (field name!) FIXME
Returns:
string Returns the type of the specified field index

Definition at line 1859 of file class.ux_t3lib_db.php.

References $res, and t3lib_DB::debug().

ux_t3lib_DB::sql_free_result ( &$  res  ) 

Free result memory / unset result object

Parameters:
pointer MySQL result pointer to free / DBAL object
Returns:
boolean Returns TRUE on success or FALSE on failure.

Definition at line 1733 of file class.ux_t3lib_db.php.

References $res.

ux_t3lib_DB::sql_insert_id (  ) 

Get the ID generated from the previous INSERT operation

Returns:
integer The uid of the last inserted record.

Reimplemented from t3lib_DB.

Definition at line 1762 of file class.ux_t3lib_db.php.

ux_t3lib_DB::sql_num_rows ( &$  res  ) 

Returns the number of selected rows.

Parameters:
pointer Result pointer / DBAL object
Returns:
integer Number of resulting rows.

Definition at line 1620 of file class.ux_t3lib_db.php.

References $res.

ux_t3lib_DB::sql_pconnect ( TYPO3_db_host,
TYPO3_db_username,
TYPO3_db_password 
)

Opening the _DEFAULT connection handler to the database. This is typically done by the scripts "init.php" in the backend or "index_ts.php" in the frontend (tslib_fe->connectToMySQL()) You wouldn't need to use this at any time - let TYPO3 core handle this.

Parameters:
string Database host IP/domain
string Username to connect with.
string Password to connect with.
Returns:
mixed Returns handler connection value
Deprecated:
since TYPO3 4.1
See also:
handler_init()

Reimplemented from t3lib_DB.

Definition at line 1971 of file class.ux_t3lib_db.php.

References handler_init().

ux_t3lib_DB::sql_query ( query  ) 

Executes a query EXPERIMENTAL - This method will make its best to handle the query correctly but if it cannot, it will simply pass the query to DEFAULT handler.

You should use exec_* function from this class instead! If you don't, anything that does not use the _DEFAULT handler will probably break!

This method was deprecated in TYPO3 4.1 but is considered experimental since TYPO3 4.4 as it tries to handle the query correctly anyway.

Parameters:
string Query to execute
Returns:
pointer Result pointer / DBAL object

Reimplemented from t3lib_DB.

Definition at line 1931 of file class.ux_t3lib_db.php.

References t3lib_DB::debug(), exec_query(), t3lib_div::inList(), and sql_error().

Referenced by debug_explain(), and sql().

ux_t3lib_DB::sql_select_db ( TYPO3_db  ) 

Select database for _DEFAULT handler.

Parameters:
string Database to connect to.
Returns:
boolean Always returns TRUE; function is obsolete, database selection is made in handler_init() function!
Deprecated:
since TYPO3 4.1

Reimplemented from t3lib_DB.

Definition at line 1990 of file class.ux_t3lib_db.php.

Referenced by admin_get_dbs().

ux_t3lib_DB::TRUNCATEquery ( table  ) 

Creates a TRUNCATE TABLE SQL-statement

Parameters:
string See exec_TRUNCATEquery()
Returns:
string Full SQL query for TRUNCATE TABLE

Reimplemented from t3lib_DB.

Definition at line 1111 of file class.ux_t3lib_db.php.

References debugOutput, and quoteFromTables().

Referenced by exec_TRUNCATEquery().

ux_t3lib_DB::UPDATEquery ( table,
where,
fields_values,
no_quote_fields = '' 
)

Creates an UPDATE SQL-statement for $table where $where-clause (typ. 'uid=...') from the array with field/value pairs $fields_values. Usage count/core: 6

Parameters:
string See exec_UPDATEquery()
string See exec_UPDATEquery()
array See exec_UPDATEquery()
mixed See exec_UPDATEquery()
Returns:
mixed Full SQL query for UPDATE as string or array (unless $fields_values does not contain any elements in which case it will be FALSE). If BLOB fields will be affected and one is not running the native type, an array will be returned, where 0 => plain SQL, 1 => fieldname/value pairs of BLOB fields

Reimplemented from t3lib_DB.

Definition at line 991 of file class.ux_t3lib_db.php.

References debugOutput, fullQuoteStr(), quoteFieldNames(), runningNative(), and sql_field_metatype().

Referenced by exec_UPDATEquery().


Member Data Documentation

ux_t3lib_DB::$cache_autoIncFields = array()

Definition at line 152 of file class.ux_t3lib_db.php.

ux_t3lib_DB::$cache_fieldType = array()

Definition at line 153 of file class.ux_t3lib_db.php.

ux_t3lib_DB::$cache_handlerKeyFromTableList = array()

Definition at line 150 of file class.ux_t3lib_db.php.

ux_t3lib_DB::$cache_mappingFromTableList = array()

Definition at line 151 of file class.ux_t3lib_db.php.

ux_t3lib_DB::$cache_primaryKeys = array()

Definition at line 154 of file class.ux_t3lib_db.php.

ux_t3lib_DB::$conf = array()

Definition at line 121 of file class.ux_t3lib_db.php.

ux_t3lib_DB::$debug = FALSE

Definition at line 120 of file class.ux_t3lib_db.php.

ux_t3lib_DB::$handlerCfg

Initial value:

 array( // See manual.
        '_DEFAULT' => array(
                'type' => 'native',
                'config' => array(
                    'username' => '',   // Set by default (overridden)
                    'password' => '',   // Set by default (overridden)
                    'host' => '',   // Set by default (overridden)
                    'database' => '',   // Set by default (overridden)
                    'driver' => '', // ONLY "adodb" type; eg. "mysql"
                    'sequenceStart' => 1,   // ONLY "adodb", first number in sequences/serials/...
                    'useNameQuote' => 0 // ONLY "adodb", whether to use NameQuote() method from ADOdb to quote names
                )
        ),
    )

Definition at line 125 of file class.ux_t3lib_db.php.

ux_t3lib_DB::$handlerInstance = array()

Definition at line 142 of file class.ux_t3lib_db.php.

ux_t3lib_DB::$Installer

Definition at line 168 of file class.ux_t3lib_db.php.

ux_t3lib_DB::$lastHandlerKey = ''

Definition at line 143 of file class.ux_t3lib_db.php.

ux_t3lib_DB::$lastParsedAndMappedQueryArray = array()

Definition at line 145 of file class.ux_t3lib_db.php.

ux_t3lib_DB::$lastQuery = ''

Definition at line 144 of file class.ux_t3lib_db.php.

ux_t3lib_DB::$mapping = array()

Definition at line 123 of file class.ux_t3lib_db.php.

ux_t3lib_DB::$printErrors = FALSE

Definition at line 119 of file class.ux_t3lib_db.php.

ux_t3lib_DB::$resourceIdToTableNameMap = array()

Definition at line 147 of file class.ux_t3lib_db.php.

ux_t3lib_DB::$SQLparser

Definition at line 161 of file class.ux_t3lib_db.php.

ux_t3lib_DB::$table2handlerKeys = array()

Definition at line 124 of file class.ux_t3lib_db.php.


The documentation for this class was generated from the following file:
Generated on Sat Mar 6 04:20:14 2010 for TYPO3 API by  doxygen 1.4.7