Flupdo  v1.4
Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
SelectBuilder Class Reference

Description

Flupdo Builder for SELECT statement.

http://dev.mysql.com/doc/refman/5.5/en/select.html

SELECT
  [ALL | DISTINCT | DISTINCTROW ]
    [HIGH_PRIORITY]
    [STRAIGHT_JOIN]
    [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
    [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
  select_expr [, select_expr ...]
  [FROM table_references
  [WHERE where_condition]
  [GROUP BY {col_name | expr | position}
    [ASC | DESC], ... [WITH ROLLUP]]
  [HAVING where_condition]
  [ORDER BY {col_name | expr | position}
    [ASC | DESC], ...]
  [LIMIT {[offset,] row_count | row_count OFFSET offset}]
  [PROCEDURE procedure_name(argument_list)]
  [INTO OUTFILE 'file_name'
      [CHARACTER SET charset_name]
      export_options
    | INTO DUMPFILE 'file_name'
    | INTO var_name [, var_name]]
    [FOR UPDATE | LOCK IN SHARE MODE]]

Inheritance diagram for SelectBuilder

Public Member Functions

 headerComment ($sql_statement,...)
 Replaces content of buffer -- HEADER with $sql_statement. More...
 
 select ($sql_statement,...)
 Appends $sql_statement to buffer SELECT. More...
 
 selectFirst ($sql_statement,...)
 Appends $sql_statement to buffer SELECT_FIRST. More...
 
 all ()
 Sets content of buffer DISTINCT to ALL. More...
 
 distinct ()
 Sets content of buffer DISTINCT to DISTINCT. More...
 
 distinctRow ()
 Sets content of buffer DISTINCT to DISTINCTROW. More...
 
 highPriority ()
 Sets content of buffer HIGH_PRIORITY to HIGH_PRIORITY. More...
 
 straightJoin ($sql_statement,...)
 Appends $sql_statement prefixed with STRAIGHT_JOIN to buffer JOIN. More...
 
 sqlSmallResult ()
 Sets content of buffer SQL_SMALL_RESULT to SQL_SMALL_RESULT. More...
 
 sqlBigResult ()
 Sets content of buffer SQL_BIG_RESULT to SQL_BIG_RESULT. More...
 
 sqlBufferResult ()
 Sets content of buffer SQL_BUFFER_RESULT to SQL_BUFFER_RESULT. More...
 
 sqlCache ()
 Sets content of buffer SQL_CACHE to SQL_CACHE. More...
 
 sqlNoCache ()
 Sets content of buffer SQL_CACHE to SQL_NO_CACHE. More...
 
 sqlCalcFoundRows ()
 Sets content of buffer SQL_CALC_FOUND_ROWS to SQL_CALC_FOUND_ROWS. More...
 
 from ($sql_statement,...)
 Appends $sql_statement to buffer FROM. More...
 
 join ($sql_statement,...)
 Appends $sql_statement prefixed with JOIN to buffer JOIN. More...
 
 innerJoin ($sql_statement,...)
 Appends $sql_statement prefixed with INNER JOIN to buffer JOIN. More...
 
 crossJoin ($sql_statement,...)
 Appends $sql_statement prefixed with CROSS JOIN to buffer JOIN. More...
 
 leftJoin ($sql_statement,...)
 Appends $sql_statement prefixed with LEFT JOIN to buffer JOIN. More...
 
 rightJoin ($sql_statement,...)
 Appends $sql_statement prefixed with RIGHT JOIN to buffer JOIN. More...
 
 leftOuterJoin ($sql_statement,...)
 Appends $sql_statement prefixed with LEFT OUTER JOIN to buffer JOIN. More...
 
 rightOuterJoin ($sql_statement,...)
 Appends $sql_statement prefixed with RIGHT OUTER JOIN to buffer JOIN. More...
 
 naturalLeftJoin ($sql_statement,...)
 Appends $sql_statement prefixed with NATURAL LEFT JOIN to buffer JOIN. More...
 
 naturalRightJoin ($sql_statement,...)
 Appends $sql_statement prefixed with NATURAL RIGHT JOIN to buffer JOIN. More...
 
 naturalLeftOuterJoin ($sql_statement,...)
 Appends $sql_statement prefixed with NATURAL LEFT OUTER JOIN to buffer JOIN. More...
 
 naturalRightOuterJoin ($sql_statement,...)
 Appends $sql_statement prefixed with NATURAL RIGHT OUTER JOIN to buffer JOIN. More...
 
 where ($sql_statement,...)
 Appends $sql_statement to buffer WHERE. More...
 
 groupBy ($sql_statement,...)
 Appends $sql_statement to buffer GROUP BY. More...
 
 having ($sql_statement,...)
 Appends $sql_statement to buffer HAVING. More...
 
 orderBy ($sql_statement,...)
 Appends $sql_statement to buffer ORDER BY. More...
 
 limit ($sql_statement,...)
 Replaces content of buffer LIMIT with $sql_statement. More...
 
 offset ($sql_statement,...)
 Replaces content of buffer OFFSET with $sql_statement. More...
 
 procedure ($sql_statement,...)
 Replaces content of buffer PROCEDURE with $sql_statement. More...
 
 into ($sql_statement,...)
 Replaces content of buffer INTO with $sql_statement. More...
 
 forUpdate ()
 Sets content of buffer LOCK to FOR UPDATE. More...
 
 lockInShareMode ()
 Sets content of buffer LOCK to LOCK IN SHARE MODE. More...
 
 option ($sql_statement,...)
 Appends $sql_statement to buffer OPTION. More...
 
 footerComment ($sql_statement,...)
 Replaces content of buffer -- FOOTER with $sql_statement. More...
 
- Public Member Functions inherited from FlupdoBuilder
 __construct ($pdo, $log_query=false, $log_explain=false, $no_parenthesis_in_conditions=false)
 Constructor. More...
 
 __call ($method, $args)
 Call buffer-specific method to process arguments. More...
 
 quoteIdent ($ident)
 Quote identifier, preserve dot. More...
 
 compile ()
 Call compile function in a safe way. More...
 
 uncompile ()
 "Uncompile" the query. More...
 
 debugDump ()
 Fluently dump query to error log. More...
 
 getSqlQuery ()
 Get compiled SQL query, use only for debugging. More...
 
 getSqlParams ()
 Get parameters for compiled SQL query, use only for debugging. More...
 
 quote ($value)
 Quotes a string for use in a query. More...
 
 rawSql ($sql)
 Returns object marking raw SQL statement. More...
 
 exec ()
 Builds and executes an SQL statement, returning the number of affected rows. More...
 
 query ()
 Builds, binds and executes an SQL statement, returning a result set as a PDOStatement object. More...
 
 prepare ($driver_options=array())
 Builds and prepares a statement for execution, returns a statement object. More...
 
 lastInsertId ()
 Proxy to PDO::lastInsertId(). More...
 
 fetchSingleRow ()
 Fetch one row from result and close cursor. More...
 
 fetchSingleValue ()
 Fetch one row from result and close cursor. More...
 
 fetchAll ($key_column=null)
 Fetch everything into array. More...
 
 __toString ()
 Get SQL query as a string. More...
 

Protected Member Functions

 compileQuery ()
 Process all buffers and build SQL query. More...
 
- Protected Member Functions inherited from FlupdoBuilder
 add ($args, $buffer_id)
 Add SQL fragment to buffer. More...
 
 replace ($args, $buffer_id)
 Replace buffer content with SQL fragment. More...
 
 setFlag ($args, $buffer_id, $label)
 Set flag. More...
 
 addJoin ($args, $buffer_id, $label)
 Add join statement to buffer. More...
 
 compileQuery ()
 Process all buffers and build SQL query. More...
 
 explain ()
 Explain the query and dump result to log. More...
 
 sqlStart ()
 Start SQL generating. More...
 
 sqlFinish ()
 Finish SQL generating. More...
 
 sqlBuffer ($buf)
 Add SQL with parameters. More...
 
 sqlRawBuffer ($buf)
 Generate raw SQL fragment. More...
 
 sqlComment ($buffer_id)
 Generate SQL comment. More...
 
 sqlFlag ($buffer_id)
 Generate flag fragment. More...
 
 sqlStatementFlags ($buffer_id, $flag_buffer_ids, $decorations)
 Generate SQL fragment made of flags. More...
 
 sqlList ($buffer_id, $decorations)
 Generate SQL fragment made of list. More...
 
 sqlValuesList ($buffer_id)
 Generate SQL fragment made of list values. More...
 
 sqlJoins ($buffer_id)
 Generate SQL fragment made of joins. More...
 
 sqlConditions ($buffer_id)
 Generate SQL fragment made of conditions in AND statement. More...
 

Protected Attributes

 $can_explain = true
 
- Protected Attributes inherited from FlupdoBuilder
 $log_query
 Log all queries as they are executed. More...
 
 $log_explain
 Explain each query to log. More...
 
 $no_parenthesis_in_conditions
 Sphinx does not like parenthesis in WHERE. More...
 
 $can_explain = false
 Is it possible to explain this query? More...
 
 $indent = "\t"
 Indentation string. More...
 
 $sub_indent = "\t\t"
 Second level indentation string. More...
 
 $query_sql = null
 Built query. More...
 
 $query_params = null
 Parameters for prepared statement (to be bound before query is executed). More...
 
 $buffers = array()
 Buffers containing SQL fragments. More...
 

Static Protected Attributes

static $methods
 
- Static Protected Attributes inherited from FlupdoBuilder
static $clauses = array()
 List of clauses used to composed result query. More...
 
static $methods = array()
 List of methods used to fill the $buffers. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from FlupdoBuilder
static generateDoxygenDocumentation ()
 Generate documentation for methods defined in $methods array. More...
 
- Public Attributes inherited from FlupdoBuilder
 $pdo
 PDO driver used to execute query and escape strings. More...
 
const INDENT = 0x01
 List items should be indented. More...
 
const LABEL = 0x02
 SQL fragment has a label. More...
 
const BRACKETS = 0x04
 There are brackets around each item in the list. More...
 
const NO_SEPARATOR = 0x08
 No separator between list items. More...
 
const SUB_INDENT = 0x20
 Indent more the first line. More...
 
const COMMA = 0x40
 Add comma after the SQL fragment. More...
 
const EOL = 0x80
 Add EOL after the SQL fragment. More...
 
const ALL_DECORATIONS = 0xFF
 Make it fancy! More...
 

Member Function Documentation

◆ compileQuery()

compileQuery ( )
protected

Process all buffers and build SQL query.

Side product is array of parameters (stored in $this->args) to bind with query.

This function is called by FlupdoBuilder, do not call it directly.

Example:

$this->sqlStart();
// ...
return $this->sqlFinish();

◆ headerComment()

headerComment (   $sql_statement,
  ... 
)

Replaces content of buffer -- HEADER with $sql_statement.

Parameters
$sql_statementSQL statement (a fragment of SQL query) with placeholders.
...Values of placeholders (when positional placeholders are used).
Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ select()

select (   $sql_statement,
  ... 
)

Appends $sql_statement to buffer SELECT.

Parameters
$sql_statementSQL statement (a fragment of SQL query) with placeholders.
...Values of placeholders (when positional placeholders are used).
Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ selectFirst()

selectFirst (   $sql_statement,
  ... 
)

Appends $sql_statement to buffer SELECT_FIRST.

Parameters
$sql_statementSQL statement (a fragment of SQL query) with placeholders.
...Values of placeholders (when positional placeholders are used).
Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ all()

all ( )

Sets content of buffer DISTINCT to ALL.

Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ distinct()

distinct ( )

Sets content of buffer DISTINCT to DISTINCT.

Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ distinctRow()

distinctRow ( )

Sets content of buffer DISTINCT to DISTINCTROW.

Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ highPriority()

highPriority ( )

Sets content of buffer HIGH_PRIORITY to HIGH_PRIORITY.

Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ straightJoin()

straightJoin (   $sql_statement,
  ... 
)

Appends $sql_statement prefixed with STRAIGHT_JOIN to buffer JOIN.

Parameters
$sql_statementSQL statement (a fragment of SQL query) with placeholders.
...Values of placeholders (when positional placeholders are used).
Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ sqlSmallResult()

sqlSmallResult ( )

Sets content of buffer SQL_SMALL_RESULT to SQL_SMALL_RESULT.

Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ sqlBigResult()

sqlBigResult ( )

Sets content of buffer SQL_BIG_RESULT to SQL_BIG_RESULT.

Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ sqlBufferResult()

sqlBufferResult ( )

Sets content of buffer SQL_BUFFER_RESULT to SQL_BUFFER_RESULT.

Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ sqlCache()

sqlCache ( )

Sets content of buffer SQL_CACHE to SQL_CACHE.

Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ sqlNoCache()

sqlNoCache ( )

Sets content of buffer SQL_CACHE to SQL_NO_CACHE.

Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ sqlCalcFoundRows()

sqlCalcFoundRows ( )

Sets content of buffer SQL_CALC_FOUND_ROWS to SQL_CALC_FOUND_ROWS.

Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ from()

from (   $sql_statement,
  ... 
)

Appends $sql_statement to buffer FROM.

Parameters
$sql_statementSQL statement (a fragment of SQL query) with placeholders.
...Values of placeholders (when positional placeholders are used).
Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ join()

join (   $sql_statement,
  ... 
)

Appends $sql_statement prefixed with JOIN to buffer JOIN.

Parameters
$sql_statementSQL statement (a fragment of SQL query) with placeholders.
...Values of placeholders (when positional placeholders are used).
Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ innerJoin()

innerJoin (   $sql_statement,
  ... 
)

Appends $sql_statement prefixed with INNER JOIN to buffer JOIN.

Parameters
$sql_statementSQL statement (a fragment of SQL query) with placeholders.
...Values of placeholders (when positional placeholders are used).
Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ crossJoin()

crossJoin (   $sql_statement,
  ... 
)

Appends $sql_statement prefixed with CROSS JOIN to buffer JOIN.

Parameters
$sql_statementSQL statement (a fragment of SQL query) with placeholders.
...Values of placeholders (when positional placeholders are used).
Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ leftJoin()

leftJoin (   $sql_statement,
  ... 
)

Appends $sql_statement prefixed with LEFT JOIN to buffer JOIN.

Parameters
$sql_statementSQL statement (a fragment of SQL query) with placeholders.
...Values of placeholders (when positional placeholders are used).
Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ rightJoin()

rightJoin (   $sql_statement,
  ... 
)

Appends $sql_statement prefixed with RIGHT JOIN to buffer JOIN.

Parameters
$sql_statementSQL statement (a fragment of SQL query) with placeholders.
...Values of placeholders (when positional placeholders are used).
Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ leftOuterJoin()

leftOuterJoin (   $sql_statement,
  ... 
)

Appends $sql_statement prefixed with LEFT OUTER JOIN to buffer JOIN.

Parameters
$sql_statementSQL statement (a fragment of SQL query) with placeholders.
...Values of placeholders (when positional placeholders are used).
Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ rightOuterJoin()

rightOuterJoin (   $sql_statement,
  ... 
)

Appends $sql_statement prefixed with RIGHT OUTER JOIN to buffer JOIN.

Parameters
$sql_statementSQL statement (a fragment of SQL query) with placeholders.
...Values of placeholders (when positional placeholders are used).
Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ naturalLeftJoin()

naturalLeftJoin (   $sql_statement,
  ... 
)

Appends $sql_statement prefixed with NATURAL LEFT JOIN to buffer JOIN.

Parameters
$sql_statementSQL statement (a fragment of SQL query) with placeholders.
...Values of placeholders (when positional placeholders are used).
Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ naturalRightJoin()

naturalRightJoin (   $sql_statement,
  ... 
)

Appends $sql_statement prefixed with NATURAL RIGHT JOIN to buffer JOIN.

Parameters
$sql_statementSQL statement (a fragment of SQL query) with placeholders.
...Values of placeholders (when positional placeholders are used).
Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ naturalLeftOuterJoin()

naturalLeftOuterJoin (   $sql_statement,
  ... 
)

Appends $sql_statement prefixed with NATURAL LEFT OUTER JOIN to buffer JOIN.

Parameters
$sql_statementSQL statement (a fragment of SQL query) with placeholders.
...Values of placeholders (when positional placeholders are used).
Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ naturalRightOuterJoin()

naturalRightOuterJoin (   $sql_statement,
  ... 
)

Appends $sql_statement prefixed with NATURAL RIGHT OUTER JOIN to buffer JOIN.

Parameters
$sql_statementSQL statement (a fragment of SQL query) with placeholders.
...Values of placeholders (when positional placeholders are used).
Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ where()

where (   $sql_statement,
  ... 
)

Appends $sql_statement to buffer WHERE.

Parameters
$sql_statementSQL statement (a fragment of SQL query) with placeholders.
...Values of placeholders (when positional placeholders are used).
Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ groupBy()

groupBy (   $sql_statement,
  ... 
)

Appends $sql_statement to buffer GROUP BY.

Parameters
$sql_statementSQL statement (a fragment of SQL query) with placeholders.
...Values of placeholders (when positional placeholders are used).
Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ having()

having (   $sql_statement,
  ... 
)

Appends $sql_statement to buffer HAVING.

Parameters
$sql_statementSQL statement (a fragment of SQL query) with placeholders.
...Values of placeholders (when positional placeholders are used).
Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ orderBy()

orderBy (   $sql_statement,
  ... 
)

Appends $sql_statement to buffer ORDER BY.

Parameters
$sql_statementSQL statement (a fragment of SQL query) with placeholders.
...Values of placeholders (when positional placeholders are used).
Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ limit()

limit (   $sql_statement,
  ... 
)

Replaces content of buffer LIMIT with $sql_statement.

Parameters
$sql_statementSQL statement (a fragment of SQL query) with placeholders.
...Values of placeholders (when positional placeholders are used).
Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ offset()

offset (   $sql_statement,
  ... 
)

Replaces content of buffer OFFSET with $sql_statement.

Parameters
$sql_statementSQL statement (a fragment of SQL query) with placeholders.
...Values of placeholders (when positional placeholders are used).
Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ procedure()

procedure (   $sql_statement,
  ... 
)

Replaces content of buffer PROCEDURE with $sql_statement.

Parameters
$sql_statementSQL statement (a fragment of SQL query) with placeholders.
...Values of placeholders (when positional placeholders are used).
Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ into()

into (   $sql_statement,
  ... 
)

Replaces content of buffer INTO with $sql_statement.

Parameters
$sql_statementSQL statement (a fragment of SQL query) with placeholders.
...Values of placeholders (when positional placeholders are used).
Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ forUpdate()

forUpdate ( )

Sets content of buffer LOCK to FOR UPDATE.

Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ lockInShareMode()

lockInShareMode ( )

Sets content of buffer LOCK to LOCK IN SHARE MODE.

Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ option()

option (   $sql_statement,
  ... 
)

Appends $sql_statement to buffer OPTION.

Parameters
$sql_statementSQL statement (a fragment of SQL query) with placeholders.
...Values of placeholders (when positional placeholders are used).
Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

◆ footerComment()

footerComment (   $sql_statement,
  ... 
)

Replaces content of buffer -- FOOTER with $sql_statement.

Parameters
$sql_statementSQL statement (a fragment of SQL query) with placeholders.
...Values of placeholders (when positional placeholders are used).
Note
This method is generated from FlupdoBuilder::$methods array. See compileQuery() method for buffer usage.

Member Data Documentation

◆ $can_explain

$can_explain = true
protected

◆ $methods

$methods
staticprotected