Documentation

SQLParserUtils
in package

Utility class that parses sql statements with regard to types and parameters.

Tags
link
www.doctrine-project.org
since
2.0
author

Benjamin Eberlei kontakt@beberlei.de

Table of Contents

ESCAPED_BACKTICK_QUOTED_TEXT  = '(?:`(?:\\\\)+`|`(?:[^`\\]|\\`?)*`)'
ESCAPED_BRACKET_QUOTED_TEXT  = '(?<!\bARRAY)\[(?:[^\]])*\]'
ESCAPED_DOUBLE_QUOTED_TEXT  = '(?:"(?:\\\\)+"|"(?:[^"\\]|\\"?)*")'
ESCAPED_SINGLE_QUOTED_TEXT  = "(?:'(?:\\\\)+'|'(?:[^'\\]|\\'?|'')*')"
NAMED_TOKEN  = '(?<!:):[a-zA-Z_][a-zA-Z0-9_]*'
POSITIONAL_TOKEN  = '\?'
expandListParameters()  : array<string|int, mixed>
For a positional query this method can rewrite the sql statement with regard to array parameters.
getPlaceholderPositions()  : array<string|int, mixed>
Gets an array of the placeholders in an sql statements as keys and their positions in the query string.
extractParam()  : mixed
getUnquotedStatementFragments()  : array<string|int, mixed>
Slice the SQL statement around pairs of quotes and return string fragments of SQL outside of quoted literals.

Constants

ESCAPED_BACKTICK_QUOTED_TEXT

public mixed ESCAPED_BACKTICK_QUOTED_TEXT = '(?:`(?:\\\\)+`|`(?:[^`\\]|\\`?)*`)'

ESCAPED_BRACKET_QUOTED_TEXT

public mixed ESCAPED_BRACKET_QUOTED_TEXT = '(?<!\bARRAY)\[(?:[^\]])*\]'

ESCAPED_DOUBLE_QUOTED_TEXT

public mixed ESCAPED_DOUBLE_QUOTED_TEXT = '(?:"(?:\\\\)+"|"(?:[^"\\]|\\"?)*")'

ESCAPED_SINGLE_QUOTED_TEXT

public mixed ESCAPED_SINGLE_QUOTED_TEXT = "(?:'(?:\\\\)+'|'(?:[^'\\]|\\'?|'')*')"

NAMED_TOKEN

public mixed NAMED_TOKEN = '(?<!:):[a-zA-Z_][a-zA-Z0-9_]*'

Methods

expandListParameters()

For a positional query this method can rewrite the sql statement with regard to array parameters.

public static expandListParameters(string $query, array<string|int, mixed> $params, array<string|int, mixed> $types) : array<string|int, mixed>
Parameters
$query : string

The SQL query to execute.

$params : array<string|int, mixed>

The parameters to bind to the query.

$types : array<string|int, mixed>

The types the previous parameters are in.

Tags
throws
SQLParserUtilsException
Return values
array<string|int, mixed> —

getPlaceholderPositions()

Gets an array of the placeholders in an sql statements as keys and their positions in the query string.

public static getPlaceholderPositions(string $statement[, bool $isPositional = true ]) : array<string|int, mixed>

Returns an integer => integer pair (indexed from zero) for a positional statement and a string => int[] pair for a named statement.

Parameters
$statement : string
$isPositional : bool = true
Return values
array<string|int, mixed> —

extractParam()

private static extractParam(string $paramName, array<string|int, mixed> $paramsOrTypes, bool $isParam[, mixed $defaultValue = null ]) : mixed
Parameters
$paramName : string

The name of the parameter (without a colon in front)

$paramsOrTypes : array<string|int, mixed>

A hash of parameters or types

$isParam : bool
$defaultValue : mixed = null

An optional default value. If omitted, an exception is thrown

Tags
throws
SQLParserUtilsException
Return values
mixed —

getUnquotedStatementFragments()

Slice the SQL statement around pairs of quotes and return string fragments of SQL outside of quoted literals.

private static getUnquotedStatementFragments(string $statement) : array<string|int, mixed>

Each fragment is captured as a 2-element array:

0 => matched fragment string, 1 => offset of fragment in $statement

Parameters
$statement : string
Return values
array<string|int, mixed> —

Search results