Class JDatabaseQuery

Description

Query Building Class.

  • abstract:
  • since: 11.1

Located in /libraries/joomla/database/query.php (line 136)


	
			
Direct descendents
Class Description
JDatabaseQueryMySQL Query Building Class.
JDatabaseQuerySQLSrv Query Building Class.
Variable Summary
Method Summary
JDatabaseQuery __construct ([JDatabase $db = null])
string castAsChar (string $value)
string charLength (string $field)
JDatabaseQuery clear ([string $clause = null])
JDatabaseQuery columns (mixed $columns)
string concatenate (array $values, [string $separator = null])
string currentTimestamp ()
string dateFormat ()
JDatabaseQuery delete ([string $table = null])
string dump ()
string escape (string $text, [boolean $extra = false])
JDatabaseQuery from (mixed $tables)
JDatabaseQuery group (mixed $columns)
JDatabaseQuery having (mixed $conditions, [string $glue = 'AND'])
JDatabaseQuery innerJoin (string $condition)
JDatabaseQuery insert (mixed $table, [boolean $incrementField = false])
JDatabaseQuery join (string $type, string $conditions)
JDatabaseQuery leftJoin (string $condition)
int length (string $value)
string nullDate ([boolean $quoted = true])
JDatabaseQuery order (mixed $columns)
JDatabaseQuery outerJoin (string $condition)
string quote (string $text, [boolean $escape = true])
string quoteName (string $name)
JDatabaseQuery rightJoin (string $condition)
JDatabaseQuery select (mixed $columns)
JDatabaseQuery set (mixed $conditions, [string $glue = ','])
mixed union (mixed $query, [boolean $distinct = false], [string $glue = ''])
mixed unionDistinct (mixed $query, [string $glue = ''])
JDatabaseQuery update (string $table)
JDatabaseQuery values (string $values)
JDatabaseQuery where (mixed $conditions, [string $glue = 'AND'])
string __call (string $method, array $args)
void __clone ()
mixed __get (string $name)
string __toString ()
Variables
object The $autoIncrementField = null (line 244)
  • var: auto increment insert field element.
  • since: 11.1
  • access: protected
JDatabaseQueryElement $columns = null (line 220)
  • var: The column list for an INSERT statement.
  • since: 11.1
  • access: protected
JDatabase $db = null (line 142)
  • var: The database connection resource.
  • since: 11.1
  • access: protected
JDatabaseQueryElement $delete = null (line 166)
  • var: The delete element.
  • since: 11.1
  • access: protected
JDatabaseQueryElement $element = null (line 154)
  • var: The query element for a generic query (type = null).
  • since: 11.1
  • access: protected
JDatabaseQueryElement $from = null (line 184)
  • var: The from element.
  • since: 11.1
  • access: protected
JDatabaseQueryElement $group = null (line 208)
  • var: The group by element.
  • since: 11.1
  • access: protected
JDatabaseQueryElement $having = null (line 214)
  • var: The having element.
  • since: 11.1
  • access: protected
JDatabaseQueryElement $insert = null (line 178)
  • var: The insert element.
  • since: 11.1
  • access: protected
JDatabaseQueryElement $join = null (line 190)
  • var: The join element.
  • since: 11.1
  • access: protected
JDatabaseQueryElement $order = null (line 232)
  • var: The order element.
  • since: 11.1
  • access: protected
JDatabaseQueryElement $select = null (line 160)
  • var: The select element.
  • since: 11.1
  • access: protected
JDatabaseQueryElement $set = null (line 196)
  • var: The set element.
  • since: 11.1
  • access: protected
string $type = '' (line 148)
  • var: The query type.
  • since: 11.1
  • access: protected
JDatabaseQueryElement $union = null (line 238)
  • var: The union element.
  • since: 12.1
  • access: protected
JDatabaseQueryElement $update = null (line 172)
  • var: The update element.
  • since: 11.1
  • access: protected
JDatabaseQueryElement $values = null (line 226)
  • var: The values list for an INSERT statement.
  • since: 11.1
  • access: protected
JDatabaseQueryElement $where = null (line 202)
  • var: The where element.
  • since: 11.1
  • access: protected
Methods
Constructor __construct (line 286)

Class constructor.

  • since: 11.1
  • access: public
JDatabaseQuery __construct ([JDatabase $db = null])
  • JDatabase $db: The database connector resource.
castAsChar (line 441)

Casts a value to a char.

Ensure that the value is properly quoted before passing to the method.

Usage: $query->select($query->castAsChar('a'));

  • return: Returns the cast value.
  • since: 11.1
  • access: public
string castAsChar (string $value)
  • string $value: The value to cast as a char.

Redefined in descendants as:
charLength (line 460)

Gets the number of characters in a string.

Note, use 'length' to find the number of bytes in a string.

Usage: $query->select($query->charLength('a'));

  • return: The required char length call.
  • since: 11.1
  • access: public
string charLength (string $field)
  • string $field: A value.

Redefined in descendants as:
clear (line 474)

Clear data from the query or a specific clause of the query.

  • return: Returns this object to allow chaining.
  • since: 11.1
  • access: public
JDatabaseQuery clear ([string $clause = null])
  • string $clause: Optionally, the name of the clause to clear, or nothing to clear the whole query.
columns (line 566)

Adds a column, or array of column names that would be used for an INSERT INTO statement.

  • return: Returns this object to allow chaining.
  • since: 11.1
  • access: public
JDatabaseQuery columns (mixed $columns)
  • mixed $columns: A column name, or array of column names.
concatenate (line 593)

Concatenates an array of column names or values.

Usage: $query->select($query->concatenate(array('a', 'b')));

  • return: The concatenated values.
  • since: 11.1
  • access: public
string concatenate (array $values, [string $separator = null])
  • array $values: An array of values to concatenate.
  • string $separator: As separator to place between each value.

Redefined in descendants as:
currentTimestamp (line 615)

Gets the current date and time.

Usage: $query->where('published_up < '.$query->currentTimestamp());

  • since: 11.1
  • access: public
string currentTimestamp ()

Redefined in descendants as:
dateFormat (line 630)

Returns a PHP date() function compliant date format for the database driver.

This method is provided for use where the query object is passed to a function for modification. If you have direct access to the database object, it is recommended you use the getDateFormat method directly.

  • return: The format string.
  • since: 11.1
  • access: public
string dateFormat ()
delete (line 669)

Add a table name to the DELETE clause of the query.

Note that you must not mix insert, update, delete and select method calls when building a query.

Usage: $query->delete('#__a')->where('id = 1');

  • return: Returns this object to allow chaining.
  • since: 11.1
  • access: public
JDatabaseQuery delete ([string $table = null])
  • string $table: The name of the table to delete from.
dump (line 650)

Creates a formatted dump of the query for debugging purposes.

Usage: echo $query->dump();

  • since: 11.3
  • access: public
string dump ()
escape (line 698)

Method to escape a string for usage in an SQL statement.

This method is provided for use where the query object is passed to a function for modification. If you have direct access to the database object, it is recommended you use the escape method directly.

Note that 'e' is an alias for this method as it is in JDatabase.

  • return: The escaped string.
  • since: 11.1
  • throws: DatabaseError if the internal db property is not a valid object.
  • access: public
string escape (string $text, [boolean $extra = false])
  • string $text: The string to be escaped.
  • boolean $extra: Optional parameter to provide extra escaping.
from (line 722)

Add a table to the FROM clause of the query.

Note that while an array of tables can be provided, it is recommended you use explicit joins.

Usage: $query->select('*')->from('#__a');

  • return: Returns this object to allow chaining.
  • since: 11.1
  • access: public
JDatabaseQuery from (mixed $tables)
  • mixed $tables: A string or array of table names.
group (line 748)

Add a grouping column to the GROUP clause of the query.

Usage: $query->group('id');

  • return: Returns this object to allow chaining.
  • since: 11.1
  • access: public
JDatabaseQuery group (mixed $columns)
  • mixed $columns: A string or array of ordering columns.
having (line 775)

A conditions to the HAVING clause of the query.

Usage: $query->group('id')->having('COUNT(id) > 5');

  • return: Returns this object to allow chaining.
  • since: 11.1
  • access: public
JDatabaseQuery having (mixed $conditions, [string $glue = 'AND'])
  • mixed $conditions: A string or array of columns.
  • string $glue: The glue by which to join the conditions. Defaults to AND.
innerJoin (line 802)

Add an INNER JOIN clause to the query.

Usage: $query->innerJoin('b ON b.id = a.id')->innerJoin('c ON c.id = b.id');

  • return: Returns this object to allow chaining.
  • since: 11.1
  • access: public
JDatabaseQuery innerJoin (string $condition)
  • string $condition: The join condition.
insert (line 826)

Add a table name to the INSERT clause of the query.

Note that you must not mix insert, update, delete and select method calls when building a query.

Usage: $query->insert('#__a')->set('id = 1'); $query->insert('#__a)->columns('id, title')->values('1,2')->values->('3,4'); $query->insert('#__a)->columns('id, title')->values(array('1,2', '3,4'));

  • return: Returns this object to allow chaining.
  • since: 11.1
  • access: public
JDatabaseQuery insert (mixed $table, [boolean $incrementField = false])
  • mixed $table: The name of the table to insert data into.
  • boolean $incrementField: The name of the field to auto increment.
join (line 848)

Add a JOIN clause to the query.

Usage: $query->join('INNER', 'b ON b.id = a.id);

  • return: Returns this object to allow chaining.
  • since: 11.1
  • access: public
JDatabaseQuery join (string $type, string $conditions)
  • string $type: The type of join. This string is prepended to the JOIN keyword.
  • string $conditions: A string or array of conditions.
leftJoin (line 871)

Add a LEFT JOIN clause to the query.

Usage: $query->leftJoin('b ON b.id = a.id')->leftJoin('c ON c.id = b.id');

  • return: Returns this object to allow chaining.
  • since: 11.1
  • access: public
JDatabaseQuery leftJoin (string $condition)
  • string $condition: The join condition.
length (line 892)

Get the length of a string in bytes.

Note, use 'charLength' to find the number of characters in a string.

Usage: query->where($query->length('a').' > 3');

  • since: 11.1
  • access: public
int length (string $value)
  • string $value: The string to measure.

Redefined in descendants as:
nullDate (line 912)

Get the null or zero representation of a timestamp for the database driver.

This method is provided for use where the query object is passed to a function for modification. If you have direct access to the database object, it is recommended you use the nullDate method directly.

Usage: $query->where('modified_date <> '.$query->nullDate());

  • return: Null or zero representation of a timestamp.
  • since: 11.1
  • access: public
string nullDate ([boolean $quoted = true])
  • boolean $quoted: Optionally wraps the null date in database quotes (true by default).
order (line 942)

Add a ordering column to the ORDER clause of the query.

Usage: $query->order('foo')->order('bar'); $query->order(array('foo','bar'));

  • return: Returns this object to allow chaining.
  • since: 11.1
  • access: public
JDatabaseQuery order (mixed $columns)
  • mixed $columns: A string or array of ordering columns.
outerJoin (line 968)

Add an OUTER JOIN clause to the query.

Usage: $query->outerJoin('b ON b.id = a.id')->outerJoin('c ON c.id = b.id');

  • return: Returns this object to allow chaining.
  • since: 11.1
  • access: public
JDatabaseQuery outerJoin (string $condition)
  • string $condition: The join condition.
quote (line 995)

Method to quote and optionally escape a string to database requirements for insertion into the database.

This method is provided for use where the query object is passed to a function for modification. If you have direct access to the database object, it is recommended you use the quote method directly.

Note that 'q' is an alias for this method as it is in JDatabase.

Usage: $query->quote('fulltext'); $query->q('fulltext');

  • return: The quoted input string.
  • since: 11.1
  • throws: DatabaseError if the internal db property is not a valid object.
  • access: public
string quote (string $text, [boolean $escape = true])
  • string $text: The string to quote.
  • boolean $escape: True to escape the string, false to leave it unchanged.
quoteName (line 1025)

Wrap an SQL statement identifier name such as column, table or database names in quotes to prevent injection risks and reserved word conflicts.

This method is provided for use where the query object is passed to a function for modification. If you have direct access to the database object, it is recommended you use the quoteName method directly.

Note that 'qn' is an alias for this method as it is in JDatabase.

Usage: $query->quoteName('#__a'); $query->qn('#__a');

  • return: The quote wrapped name.
  • since: 11.1
  • throws: DatabaseError if the internal db property is not a valid object.
  • access: public
string quoteName (string $name)
  • string $name: The identifier name to wrap in quotes.
rightJoin (line 1047)

Add a RIGHT JOIN clause to the query.

Usage: $query->rightJoin('b ON b.id = a.id')->rightJoin('c ON c.id = b.id');

  • return: Returns this object to allow chaining.
  • since: 11.1
  • access: public
JDatabaseQuery rightJoin (string $condition)
  • string $condition: The join condition.
select (line 1070)

Add a single column, or array of columns to the SELECT clause of the query.

Note that you must not mix insert, update, delete and select method calls when building a query. The select method can, however, be called multiple times in the same query.

Usage: $query->select('a.*')->select('b.id'); $query->select(array('a.*', 'b.id'));

  • return: Returns this object to allow chaining.
  • since: 11.1
  • access: public
JDatabaseQuery select (mixed $columns)
  • mixed $columns: A string or an array of field names.
set (line 1101)

Add a single condition string, or an array of strings to the SET clause of the query.

Usage: $query->set('a = 1')->set('b = 2'); $query->set(array('a = 1', 'b = 2');

  • return: Returns this object to allow chaining.
  • since: 11.1
  • access: public
JDatabaseQuery set (mixed $conditions, [string $glue = ','])
  • mixed $conditions: A string or array of string conditions.
  • string $glue: The glue by which to join the condition strings. Defaults to ,. Note that the glue is set on first use and cannot be changed.
union (line 1231)

Add a query to UNION with the current query.

Multiple unions each require separate statements and create an array of unions.

Usage: $query->union('SELECT name FROM #__foo') $query->union('SELECT name FROM #__foo','distinct') $query->union(array('SELECT name FROM #__foo','SELECT name FROM #__bar'))

  • return: The JDatabaseQuery object on success or boolean false on failure.
  • since: 12.1
  • access: public
mixed union (mixed $query, [boolean $distinct = false], [string $glue = ''])
  • mixed $query: The JDatabaseQuery object or string to union.
  • boolean $distinct: True to only return distinct rows from the union.
  • string $glue: The glue by which to join the conditions.
unionDistinct (line 1281)

Add a query to UNION DISTINCT with the current query. Simply a proxy to Union with the Distinct clause.

Usage: $query->unionDistinct('SELECT name FROM #__foo')

  • return: The JDatabaseQuery object on success or boolean false on failure.
  • since: 12.1
  • access: public
mixed unionDistinct (mixed $query, [string $glue = ''])
  • mixed $query: The JDatabaseQuery object or string to union.
  • string $glue: The glue by which to join the conditions.
update (line 1130)

Add a table name to the UPDATE clause of the query.

Note that you must not mix insert, update, delete and select method calls when building a query.

Usage: $query->update('#__foo')->set(...);

  • return: Returns this object to allow chaining.
  • since: 11.1
  • access: public
JDatabaseQuery update (string $table)
  • string $table: A table to update.
values (line 1151)

Adds a tuple, or array of tuples that would be used as values for an INSERT INTO statement.

Usage: $query->values('1,2,3')->values('4,5,6'); $query->values(array('1,2,3', '4,5,6'));

  • return: Returns this object to allow chaining.
  • since: 11.1
  • access: public
JDatabaseQuery values (string $values)
  • string $values: A single tuple, or array of tuples.
where (line 1180)

Add a single condition, or an array of conditions to the WHERE clause of the query.

Usage: $query->where('a = 1')->where('b = 2'); $query->where(array('a = 1', 'b = 2'));

  • return: Returns this object to allow chaining.
  • since: 11.1
  • access: public
JDatabaseQuery where (mixed $conditions, [string $glue = 'AND'])
  • mixed $conditions: A string or array of where conditions.
  • string $glue: The glue by which to join the conditions. Defaults to AND. Note that the glue is set on first use and cannot be changed.
__call (line 256)

Magic method to provide method alias support for quote() and quoteName().

  • return: The aliased method's return value or null.
  • since: 11.1
  • access: public
string __call (string $method, array $args)
  • string $method: The called method.
  • array $args: The array of arguments passed to the method.
__clone (line 1203)

Method to provide deep copy support to nested objects and arrays when cloning.

  • since: 11.3
  • access: public
void __clone ()
__get (line 422)

Magic function to get protected variable value

  • since: 11.1
  • access: public
mixed __get (string $name)
  • string $name: The name of the variable.
__toString (line 298)

Magic function to convert the query to a string.

  • return: The completed query.
  • since: 11.1
  • access: public
string __toString ()

Redefined in descendants as:

Documentation generated on Mon, 25 Jun 2012 13:59:00 -0500 by phpDocumentor 1.4.4