CakePHP
  • Documentation
    • Book
    • API
    • Videos
    • Reporting Security Issues
    • Privacy Policy
    • Logos & Trademarks
  • Business Solutions
  • Swag
  • Road Trip
  • Team
  • Community
    • Community
    • Get Involved
    • Issues (Github)
    • Bakery
    • Featured Resources
    • Training
    • Meetups
    • My CakePHP
    • CakeFest
    • Newsletter
    • Linkedin
    • YouTube
    • Facebook
    • Twitter
    • Mastodon
    • Help & Support
    • Forum
    • Stack Overflow
    • IRC
    • Slack
    • Paid Support
CakePHP

C CakePHP 5.1 Chiffon API

  • Project:
    • CakePHP
      • CakePHP
      • Authentication
      • Authorization
      • Chronos
      • Elastic Search
      • Queue
  • Version:
    • 5.1
      • 5.2
      • 5.1
      • 5.0
      • 4.6
      • 4.5
      • 4.4
      • 4.3
      • 4.2
      • 4.1
      • 4.0
      • 3.10
      • 3.9
      • 3.8
      • 3.7
      • 3.6
      • 3.5
      • 3.4
      • 3.3
      • 3.2
      • 3.1
      • 3.0
      • 2.10
      • 2.9
      • 2.8
      • 2.7
      • 2.6
      • 2.5
      • 2.4
      • 2.3
      • 2.2
      • 2.1
      • 2.0
      • 1.3
      • 1.2

Namespaces

  • Global
  • Cake
    • Cache
    • Collection
    • Command
    • Console
    • Controller
    • Core
    • Database
      • Driver
      • Exception
      • Expression
      • Log
      • Query
      • Retry
      • Schema
      • Statement
      • Type
    • Datasource
    • Error
    • Event
    • Form
    • Http
    • I18n
    • Log
    • Mailer
    • Network
    • ORM
    • Routing
    • TestSuite
    • Utility
    • Validation
    • View

Class SqlserverCompiler

Responsible for compiling a Query object into its SQL representation for SQL Server

Namespace: Cake\Database

Property Summary

  • $_deleteParts protected
    list<string>

    The list of query clauses to traverse for generating a DELETE statement

  • $_insertParts protected
    list<string>

    The list of query clauses to traverse for generating an INSERT statement

  • $_quotedSelectAliases protected
    bool

    Indicate whether aliases in SELECT clause need to be always quoted.

  • $_selectParts protected
    list<string>

    The list of query clauses to traverse for generating a SELECT statement

  • $_templates protected
    array<string, string>

    List of sprintf templates that will be used for compiling the SQL for this query. There are some clauses that can be built as just as the direct concatenation of the internal parts, those are listed here.

  • $_updateParts protected
    list<string>

    The list of query clauses to traverse for generating an UPDATE statement

Method Summary

  • _buildFromPart() protected

    Helper function used to build the string representation of a FROM clause, it constructs the tables list taking care of aliasing and converting expression objects to string.

  • _buildHavingPart() protected

    Helper function used to build the string representation of a HAVING clause, it constructs the field list taking care of aliasing and converting expression objects to string.

  • _buildInsertPart() protected

    Generates the INSERT part of a SQL query

  • _buildIntersectPart() protected

    Builds the SQL string for all the INTERSECT clauses in this query, when dealing with query objects it will also transform them using their configured SQL dialect.

  • _buildJoinPart() protected

    Helper function used to build the string representation of multiple JOIN clauses, it constructs the joins list taking care of aliasing and converting expression objects to string in both the table to be joined and the conditions to be used.

  • _buildLimitPart() protected

    Generates the LIMIT part of a SQL query

  • _buildModifierPart() protected

    Builds the SQL modifier fragment

  • _buildSelectPart() protected

    Helper function used to build the string representation of a SELECT clause, it constructs the field list taking care of aliasing and converting expression objects to string. This function also constructs the DISTINCT clause for the query.

  • _buildSetOperationPart() protected

    Builds the SQL string for all the operation clauses in this query, when dealing with query objects it will also transform them using their configured SQL dialect.

  • _buildSetPart() protected

    Helper function to generate SQL for SET expressions.

  • _buildUnionPart() protected

    Builds the SQL string for all the UNION clauses in this query, when dealing with query objects it will also transform them using their configured SQL dialect.

  • _buildUpdatePart() protected

    Builds the SQL fragment for UPDATE.

  • _buildValuesPart() protected

    Builds the SQL fragment for INSERT INTO.

  • _buildWindowPart() protected

    Helper function to build the string representation of a window clause.

  • _buildWithPart() protected

    Helper function used to build the string representation of a WITH clause, it constructs the CTE definitions list without generating the RECURSIVE keyword that is neither required nor valid.

  • _sqlCompiler() protected

    Returns a closure that can be used to compile a SQL string representation of this query.

  • _stringifyExpressions() protected

    Helper function used to covert ExpressionInterface objects inside an array into their string representation.

  • compile() public

    Returns the SQL representation of the provided query after generating the placeholders for the bound values using the provided generator

Method Detail

_buildFromPart() ¶ protected

_buildFromPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string

Helper function used to build the string representation of a FROM clause, it constructs the tables list taking care of aliasing and converting expression objects to string.

Parameters
array $parts

list of tables to be transformed to string

Cake\Database\Query $query

The query that is being compiled

Cake\Database\ValueBinder $binder

Value binder used to generate parameter placeholder

Returns
string

_buildHavingPart() ¶ protected

_buildHavingPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string

Helper function used to build the string representation of a HAVING clause, it constructs the field list taking care of aliasing and converting expression objects to string.

Parameters
array $parts

list of fields to be transformed to string

Cake\Database\Query $query

The query that is being compiled

Cake\Database\ValueBinder $binder

Value binder used to generate parameter placeholder

Returns
string

_buildInsertPart() ¶ protected

_buildInsertPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string

Generates the INSERT part of a SQL query

To better handle concurrency and low transaction isolation levels, we also include an OUTPUT clause so we can ensure we get the inserted row's data back.

Parameters
array $parts

The parts to build

Cake\Database\Query $query

The query that is being compiled

Cake\Database\ValueBinder $binder

Value binder used to generate parameter placeholder

Returns
string

_buildIntersectPart() ¶ protected

_buildIntersectPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string

Builds the SQL string for all the INTERSECT clauses in this query, when dealing with query objects it will also transform them using their configured SQL dialect.

Parameters
array $parts

list of queries to be operated with INTERSECT

Cake\Database\Query $query

The query that is being compiled

Cake\Database\ValueBinder $binder

Value binder used to generate parameter placeholder

Returns
string

_buildJoinPart() ¶ protected

_buildJoinPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string

Helper function used to build the string representation of multiple JOIN clauses, it constructs the joins list taking care of aliasing and converting expression objects to string in both the table to be joined and the conditions to be used.

Parameters
array $parts

list of joins to be transformed to string

Cake\Database\Query $query

The query that is being compiled

Cake\Database\ValueBinder $binder

Value binder used to generate parameter placeholder

Returns
string

_buildLimitPart() ¶ protected

_buildLimitPart(int $limit, Cake\Database\Query $query): string

Generates the LIMIT part of a SQL query

Parameters
int $limit

the limit clause

Cake\Database\Query $query

The query that is being compiled

Returns
string

_buildModifierPart() ¶ protected

_buildModifierPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string

Builds the SQL modifier fragment

Parameters
array $parts

The query modifier parts

Cake\Database\Query $query

The query that is being compiled

Cake\Database\ValueBinder $binder

Value binder used to generate parameter placeholder

Returns
string

_buildSelectPart() ¶ protected

_buildSelectPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string

Helper function used to build the string representation of a SELECT clause, it constructs the field list taking care of aliasing and converting expression objects to string. This function also constructs the DISTINCT clause for the query.

Parameters
array $parts

list of fields to be transformed to string

Cake\Database\Query $query

The query that is being compiled

Cake\Database\ValueBinder $binder

Value binder used to generate parameter placeholder

Returns
string

_buildSetOperationPart() ¶ protected

_buildSetOperationPart(string $operation, array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string

Builds the SQL string for all the operation clauses in this query, when dealing with query objects it will also transform them using their configured SQL dialect.

Parameters
string $operation
array $parts
Cake\Database\Query $query
Cake\Database\ValueBinder $binder
Returns
string

_buildSetPart() ¶ protected

_buildSetPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string

Helper function to generate SQL for SET expressions.

Parameters
array $parts

List of keys & values to set.

Cake\Database\Query $query

The query that is being compiled

Cake\Database\ValueBinder $binder

Value binder used to generate parameter placeholder

Returns
string

_buildUnionPart() ¶ protected

_buildUnionPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string

Builds the SQL string for all the UNION clauses in this query, when dealing with query objects it will also transform them using their configured SQL dialect.

Parameters
array $parts

list of queries to be operated with UNION

Cake\Database\Query $query

The query that is being compiled

Cake\Database\ValueBinder $binder

Value binder used to generate parameter placeholder

Returns
string

_buildUpdatePart() ¶ protected

_buildUpdatePart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string

Builds the SQL fragment for UPDATE.

Parameters
array $parts

The update parts.

Cake\Database\Query $query

The query that is being compiled

Cake\Database\ValueBinder $binder

Value binder used to generate parameter placeholder

Returns
string

_buildValuesPart() ¶ protected

_buildValuesPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string

Builds the SQL fragment for INSERT INTO.

Parameters
array $parts

The values parts.

Cake\Database\Query $query

The query that is being compiled

Cake\Database\ValueBinder $binder

Value binder used to generate parameter placeholder

Returns
string

_buildWindowPart() ¶ protected

_buildWindowPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string

Helper function to build the string representation of a window clause.

Parameters
array $parts

List of windows to be transformed to string

Cake\Database\Query $query

The query that is being compiled

Cake\Database\ValueBinder $binder

Value binder used to generate parameter placeholder

Returns
string

_buildWithPart() ¶ protected

_buildWithPart(array<Cake\Database\Expression\CommonTableExpression> $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string

Helper function used to build the string representation of a WITH clause, it constructs the CTE definitions list without generating the RECURSIVE keyword that is neither required nor valid.

Parameters
array<Cake\Database\Expression\CommonTableExpression> $parts

List of CTEs to be transformed to string

Cake\Database\Query $query

The query that is being compiled

Cake\Database\ValueBinder $binder

Value binder used to generate parameter placeholder

Returns
string

_sqlCompiler() ¶ protected

_sqlCompiler(string $sql, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): Closure

Returns a closure that can be used to compile a SQL string representation of this query.

Parameters
string $sql

initial sql string to append to

Cake\Database\Query $query

The query that is being compiled

Cake\Database\ValueBinder $binder

Value binder used to generate parameter placeholder

Returns
Closure

_stringifyExpressions() ¶ protected

_stringifyExpressions(array $expressions, Cake\Database\ValueBinder $binder, bool $wrap = true): array

Helper function used to covert ExpressionInterface objects inside an array into their string representation.

Parameters
array $expressions

list of strings and ExpressionInterface objects

Cake\Database\ValueBinder $binder

Value binder used to generate parameter placeholder

bool $wrap optional

Whether to wrap each expression object with parenthesis

Returns
array

compile() ¶ public

compile(Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string

Returns the SQL representation of the provided query after generating the placeholders for the bound values using the provided generator

Parameters
Cake\Database\Query $query

The query that is being compiled

Cake\Database\ValueBinder $binder

Value binder used to generate parameter placeholders

Returns
string

Property Detail

$_deleteParts ¶ protected

The list of query clauses to traverse for generating a DELETE statement

Type
list<string>

$_insertParts ¶ protected

The list of query clauses to traverse for generating an INSERT statement

Type
list<string>

$_quotedSelectAliases ¶ protected

Indicate whether aliases in SELECT clause need to be always quoted.

Type
bool

$_selectParts ¶ protected

The list of query clauses to traverse for generating a SELECT statement

Type
list<string>

$_templates ¶ protected

List of sprintf templates that will be used for compiling the SQL for this query. There are some clauses that can be built as just as the direct concatenation of the internal parts, those are listed here.

Type
array<string, string>

$_updateParts ¶ protected

The list of query clauses to traverse for generating an UPDATE statement

Type
list<string>
OpenHub
Pingping
Linode
  • Business Solutions
  • Showcase
  • Documentation
  • Book
  • API
  • Videos
  • Reporting Security Issues
  • Privacy Policy
  • Logos & Trademarks
  • Community
  • Get Involved
  • Issues (Github)
  • Bakery
  • Featured Resources
  • Training
  • Meetups
  • My CakePHP
  • CakeFest
  • Newsletter
  • Linkedin
  • YouTube
  • Facebook
  • Twitter
  • Mastodon
  • Help & Support
  • Forum
  • Stack Overflow
  • IRC
  • Slack
  • Paid Support

Generated using CakePHP API Docs