Joomla! Platform 11.4

Abstract Class JDatabaseQuery

Description

Query Building Class.

  • abstract:
  • since: 11.1

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

Abstract class JDatabaseQuery   (Subpackage Database)
Direct descendents
Class Description
ClassJDatabaseQuerySQLSrv Query Building Class.
ClassJDatabaseQueryMySQL Query Building Class.
Method Summary
Constructor JDatabaseQuery __construct ([JDatabase $db = null])
Method string castAsChar (string $value)
Method string charLength (string $field)
Method JDatabaseQuery clear ([string $clause = null])
Method JDatabaseQuery columns (mixed $columns)
Method string concatenate (array $values, [string $separator = null])
Method string currentTimestamp ()
Method string dateFormat ()
Method JDatabaseQuery delete ([string $table = null])
Method string dump ()
Method string escape (string $text, [boolean $extra = false])
Method JDatabaseQuery from (mixed $tables)
Method JDatabaseQuery group (mixed $columns)
Method JDatabaseQuery having (mixed $conditions, [string $glue = 'AND'])
Method JDatabaseQuery innerJoin (string $condition)
Method JDatabaseQuery insert (mixed $table, [boolean $incrementField = false])
Method JDatabaseQuery join (string $type, string $conditions)
Method JDatabaseQuery leftJoin (string $condition)
Method int length (string $value)
Method string nullDate ([boolean $quoted = true])
Method JDatabaseQuery order (mixed $columns)
Method JDatabaseQuery outerJoin (string $condition)
Method string quote (string $text, [boolean $escape = true])
Method string quoteName (string $name)
Method JDatabaseQuery rightJoin (string $condition)
Method JDatabaseQuery select (mixed $columns)
Method JDatabaseQuery set (mixed $conditions, [string $glue = ','])
Method JDatabaseQuery update (string $table)
Method JDatabaseQuery values (string $values)
Method JDatabaseQuery where (mixed $conditions, [string $glue = 'AND'])
Method string __call (string $method, array $args)
Method void __clone ()
Method mixed __get (string $name)
Method string __toString ()
Variables
object The $autoIncrementField = null (line 238)
  • 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 $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 280)

Class constructor.

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

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 450)

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 464)

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 556)

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 583)

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 605)

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 620)

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 659)

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 640)

Creates a formatted dump of the query for debugging purposes.

Usage: echo $query->dump();

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

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 712)

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 738)

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 765)

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 792)

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 816)

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 838)

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 861)

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 882)

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 902)

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 932)

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 958)

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 985)

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 1015)

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 1037)

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 1060)

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 1091)

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.
update (line 1120)

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 1141)

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 1170)

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 250)

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 1193)

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

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

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 292)

Magic function to convert the query to a string.

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

Redefined in descendants as:
/html>