TYPO3 CMS  TYPO3_6-2
TYPO3\CMS\Core\Database\SqlParser Class Reference
Inheritance diagram for TYPO3\CMS\Core\Database\SqlParser:
t3lib_sqlparser TYPO3\CMS\Dbal\Database\SqlParser ux_t3lib_sqlparser

Public Member Functions

 __construct ()
 
 parseSQL ($parseString)
 
 parseFieldList (&$parseString, $stopRegex='')
 
 parseFromTables (&$parseString, $stopRegex='')
 
 parseWhereClause (&$parseString, $stopRegex='', array &$parameterReferences=array())
 
 parseFieldDef (&$parseString, $stopRegex='')
 
 compileSQL ($components)
 
 compileFieldList ($selectFields, $compileComments=TRUE)
 
 compileFromTables ($tablesArray)
 
 compileWhereClause ($clauseArray)
 
 compileFieldCfg ($fieldCfg)
 
 debug_parseSQLpart ($part, $str)
 
 debug_parseSQLpartCompare ($str, $newStr, $caseInsensitive=FALSE)
 

Public Attributes

 $parse_error = ''
 
 $lastStopKeyWord = ''
 

Protected Member Functions

 parseSELECT ($parseString, &$parameterReferences=NULL)
 
 parseUPDATE ($parseString)
 
 parseINSERT ($parseString)
 
 parseDELETE ($parseString)
 
 parseEXPLAIN ($parseString)
 
 parseCREATETABLE ($parseString)
 
 parseALTERTABLE ($parseString)
 
 parseDROPTABLE ($parseString)
 
 parseCREATEDATABASE ($parseString)
 
 parseTRUNCATETABLE ($parseString)
 
 parseCaseStatement (&$parseString)
 
 nextPart (&$parseString, $regex, $trimAll=FALSE)
 
getValueOrParameter (&$parseString, $comparator='', $mode='', array &$parameterReferences=array())
 
 getValue (&$parseString, $comparator='', $mode='')
 
 getValueInQuotes (&$parseString, $quote)
 
 parseStripslashes ($str)
 
 compileAddslashes ($str)
 
 parseError ($msg, $restQuery)
 
 trimSQL ($str)
 
 compileSELECT ($components)
 
 compileUPDATE ($components)
 
 compileINSERT ($components)
 
 compileDELETE ($components)
 
 compileCREATETABLE ($components)
 
 compileALTERTABLE ($components)
 
 compileTRUNCATETABLE (array $components)
 
 compileCaseStatement (array $components)
 

Detailed Description

This file is part of the TYPO3 CMS project.

It is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, either version 2 of the License, or any later version.

For the full copyright and license information, please read the LICENSE.txt file that was distributed with this source code.

The TYPO3 project - inspiring people to share! TYPO3 SQL parser class.

Author
Kasper Skårhøj kaspe.nosp@m.rYYY.nosp@m.Y@typ.nosp@m.o3.c.nosp@m.om

Definition at line 22 of file SqlParser.php.

Constructor & Destructor Documentation

◆ __construct()

TYPO3\CMS\Core\Database\SqlParser::__construct ( )

Default constructor

Definition at line 40 of file SqlParser.php.

Member Function Documentation

◆ compileAddslashes()

TYPO3\CMS\Core\Database\SqlParser::compileAddslashes (   $str)
protected

Add slashes function used for compiling queries NOTICE: If a query being parsed was prepared for another database than MySQL this function should probably be changed

Parameters
string$strInput string
Returns
string Output string

Definition at line 1454 of file SqlParser.php.

Referenced by TYPO3\CMS\Core\Database\SqlParser\compileFieldCfg(), TYPO3\CMS\Core\Database\SqlParser\compileFromTables(), TYPO3\CMS\Core\Database\SqlParser\compileINSERT(), TYPO3\CMS\Core\Database\SqlParser\compileUPDATE(), and TYPO3\CMS\Core\Database\SqlParser\compileWhereClause().

◆ compileALTERTABLE()

TYPO3\CMS\Core\Database\SqlParser::compileALTERTABLE (   $components)
protected

Compiles an ALTER TABLE statement from components array

Parameters
array$componentsArray of SQL query components
Returns
string SQL ALTER TABLE query
See also
parseALTERTABLE()

Definition at line 1665 of file SqlParser.php.

References TYPO3\CMS\Core\Database\SqlParser\compileFieldCfg().

Referenced by TYPO3\CMS\Core\Database\SqlParser\compileSQL().

◆ compileCaseStatement()

TYPO3\CMS\Core\Database\SqlParser::compileCaseStatement ( array  $components)
protected

Compiles a CASE ... WHEN flow-control construct based on input array (made with ->parseCaseStatement())

Parameters
array$componentsArray of case components, (made with ->parseCaseStatement())
Returns
string Case when string
See also
parseCaseStatement()

Definition at line 1771 of file SqlParser.php.

References TYPO3\CMS\Core\Database\SqlParser\compileWhereClause().

Referenced by TYPO3\CMS\Core\Database\SqlParser\compileFieldList().

◆ compileCREATETABLE()

TYPO3\CMS\Core\Database\SqlParser::compileCREATETABLE (   $components)
protected

Compiles a CREATE TABLE statement from components array

Parameters
array$componentsArray of SQL query components
Returns
string SQL CREATE TABLE query
See also
parseCREATETABLE()

Definition at line 1633 of file SqlParser.php.

References TYPO3\CMS\Core\Database\SqlParser\compileFieldCfg().

Referenced by TYPO3\CMS\Core\Database\SqlParser\compileSQL().

◆ compileDELETE()

TYPO3\CMS\Core\Database\SqlParser::compileDELETE (   $components)
protected

Compiles an DELETE statement from components array

Parameters
array$componentsArray of SQL query components
Returns
string SQL DELETE query
See also
parseDELETE()

Definition at line 1617 of file SqlParser.php.

References TYPO3\CMS\Core\Database\SqlParser\compileWhereClause().

Referenced by TYPO3\CMS\Core\Database\SqlParser\compileSQL().

◆ compileFieldCfg()

TYPO3\CMS\Core\Database\SqlParser::compileFieldCfg (   $fieldCfg)

Compile field definition

Parameters
array$fieldCfgField definition parts
Returns
string Field definition string

Definition at line 1939 of file SqlParser.php.

References TYPO3\CMS\Core\Database\SqlParser\compileAddslashes().

Referenced by TYPO3\CMS\Core\Database\SqlParser\compileALTERTABLE(), and TYPO3\CMS\Core\Database\SqlParser\compileCREATETABLE().

◆ compileFieldList()

TYPO3\CMS\Core\Database\SqlParser::compileFieldList (   $selectFields,
  $compileComments = TRUE 
)

Compiles a "SELECT [output] FROM..:" field list based on input array (made with ->parseFieldList()) Can also compile field lists for ORDER BY and GROUP BY.

Parameters
array$selectFieldsArray of select fields, (made with ->parseFieldList())
boolean$compileCommentsWhether comments should be compiled
Returns
string Select field string
See also
parseFieldList()

Definition at line 1726 of file SqlParser.php.

References TYPO3\CMS\Core\Database\SqlParser\compileCaseStatement().

Referenced by TYPO3\CMS\Core\Database\SqlParser\compileSELECT(), and TYPO3\CMS\Core\Database\SqlParser\debug_parseSQLpart().

◆ compileFromTables()

TYPO3\CMS\Core\Database\SqlParser::compileFromTables (   $tablesArray)

Compiles a "FROM [output] WHERE..:" table list based on input array (made with ->parseFromTables())

Parameters
array$tablesArrayArray of table names, (made with ->parseFromTables())
Returns
string Table name string
See also
parseFromTables()

Definition at line 1799 of file SqlParser.php.

References TYPO3\CMS\Core\Database\SqlParser\compileAddslashes().

Referenced by TYPO3\CMS\Core\Database\SqlParser\compileSELECT(), and TYPO3\CMS\Core\Database\SqlParser\debug_parseSQLpart().

◆ compileINSERT()

TYPO3\CMS\Core\Database\SqlParser::compileINSERT (   $components)
protected

Compiles an INSERT statement from components array

Parameters
array$componentsArray of SQL query components
Returns
string SQL INSERT query
See also
parseINSERT()

Definition at line 1584 of file SqlParser.php.

References TYPO3\CMS\Core\Database\SqlParser\compileAddslashes().

Referenced by TYPO3\CMS\Core\Database\SqlParser\compileSQL().

◆ compileSELECT()

TYPO3\CMS\Core\Database\SqlParser::compileSELECT (   $components)
protected

◆ compileSQL()

◆ compileTRUNCATETABLE()

TYPO3\CMS\Core\Database\SqlParser::compileTRUNCATETABLE ( array  $components)
protected

Compiles a TRUNCATE TABLE statement from components array

Parameters
array$componentsArray of SQL query components
Returns
string SQL TRUNCATE TABLE query
See also
parseTRUNCATETABLE()

Definition at line 1705 of file SqlParser.php.

Referenced by TYPO3\CMS\Core\Database\SqlParser\compileSQL().

◆ compileUPDATE()

TYPO3\CMS\Core\Database\SqlParser::compileUPDATE (   $components)
protected

Compiles an UPDATE statement from components array

Parameters
array$componentsArray of SQL query components
Returns
string SQL UPDATE query
See also
parseUPDATE()

Definition at line 1562 of file SqlParser.php.

References TYPO3\CMS\Core\Database\SqlParser\compileAddslashes(), and TYPO3\CMS\Core\Database\SqlParser\compileWhereClause().

Referenced by TYPO3\CMS\Core\Database\SqlParser\compileSQL().

◆ compileWhereClause()

TYPO3\CMS\Core\Database\SqlParser::compileWhereClause (   $clauseArray)

◆ debug_parseSQLpart()

TYPO3\CMS\Core\Database\SqlParser::debug_parseSQLpart (   $part,
  $str 
)

Check parsability of input SQL part string; Will parse and re-compile after which it is compared

Parameters
string$partPart definition of string; "SELECT" = fieldlist (also ORDER BY and GROUP BY), "FROM" = table list, "WHERE" = Where clause.
string$strSQL string to verify parsability of
Returns
mixed Returns array with string 1 and 2 if error, otherwise FALSE

Definition at line 1972 of file SqlParser.php.

References TYPO3\CMS\Core\Database\SqlParser\compileFieldList(), TYPO3\CMS\Core\Database\SqlParser\compileFromTables(), TYPO3\CMS\Core\Database\SqlParser\compileWhereClause(), TYPO3\CMS\Core\Database\SqlParser\debug_parseSQLpartCompare(), TYPO3\CMS\Core\Database\SqlParser\parseFieldList(), TYPO3\CMS\Core\Database\SqlParser\parseFromTables(), and TYPO3\CMS\Core\Database\SqlParser\parseWhereClause().

◆ debug_parseSQLpartCompare()

TYPO3\CMS\Core\Database\SqlParser::debug_parseSQLpartCompare (   $str,
  $newStr,
  $caseInsensitive = FALSE 
)

Compare two query strings by stripping away whitespace.

Parameters
string$strSQL String 1
string$newStrSQL string 2
boolean$caseInsensitiveIf TRUE, the strings are compared insensitive to case
Returns
mixed Returns array with string 1 and 2 if error, otherwise FALSE

Definition at line 1996 of file SqlParser.php.

References TYPO3\CMS\Core\Database\SqlParser\trimSQL().

Referenced by TYPO3\CMS\Core\Database\SqlParser\debug_parseSQLpart(), and TYPO3\CMS\Dbal\Database\SqlParser\debug_testSQL().

◆ getValue()

TYPO3\CMS\Core\Database\SqlParser::getValue ( $parseString,
  $comparator = '',
  $mode = '' 
)
protected

Finds value in beginning of $parseString, returns result and strips it of parseString

Parameters
string$parseStringThe parseString, eg. "(0,1,2,3) ..." or "('asdf','qwer') ..." or "1234 ..." or "'My string value here' ... @param string $comparator The comparator used before. If "NOT IN" or "IN" then the value is expected to be a list of values. Otherwise just an integer (un-quoted) or string (quoted) @param string $mode The mode, eg. "INDEX
Returns
mixed The value (string/integer). Otherwise an array with error message in first key (0)

Definition at line 1355 of file SqlParser.php.

References TYPO3\CMS\Core\Database\SqlParser\getValueInQuotes(), TYPO3\CMS\Core\Utility\GeneralUtility\inList(), TYPO3\CMS\Core\Database\SqlParser\nextPart(), and TYPO3\CMS\Core\Database\SqlParser\parseError().

Referenced by TYPO3\CMS\Core\Database\SqlParser\getValueOrParameter(), TYPO3\CMS\Core\Database\SqlParser\parseALTERTABLE(), TYPO3\CMS\Core\Database\SqlParser\parseCaseStatement(), TYPO3\CMS\Core\Database\SqlParser\parseCREATETABLE(), TYPO3\CMS\Core\Database\SqlParser\parseFieldDef(), TYPO3\CMS\Core\Database\SqlParser\parseFromTables(), TYPO3\CMS\Core\Database\SqlParser\parseINSERT(), TYPO3\CMS\Core\Database\SqlParser\parseUPDATE(), and TYPO3\CMS\Core\Database\SqlParser\parseWhereClause().

◆ getValueInQuotes()

TYPO3\CMS\Core\Database\SqlParser::getValueInQuotes ( $parseString,
  $quote 
)
protected

Get value in quotes from $parseString. NOTICE: If a query being parsed was prepared for another database than MySQL this function should probably be changed

Parameters
string$parseStringString from which to find value in quotes. Notice that $parseString is passed by reference and is shortend by the output of this function.
string$quoteThe quote used; input either " or '
Returns
string The value, passed through stripslashes() !

Definition at line 1417 of file SqlParser.php.

References TYPO3\CMS\Core\Database\SqlParser\parseStripslashes().

Referenced by TYPO3\CMS\Core\Database\SqlParser\getValue().

◆ getValueOrParameter()

& TYPO3\CMS\Core\Database\SqlParser::getValueOrParameter ( $parseString,
  $comparator = '',
  $mode = '',
array &  $parameterReferences = array() 
)
protected

Finds value or either named (:name) or question mark (?) parameter markers at the beginning of $parseString, returns result and strips it of parseString. This method returns a pointer to the parameter or value that was found. In case of a parameter the pointer is a reference to the corresponding item in array $parameterReferences.

Parameters
string$parseStringThe parseString
string$comparatorThe comparator used before.
string$modeThe mode, e.g., "INDEX
mixedThe value (string/integer) or parameter (:name/?). Otherwise an array with error message in first key (0)

Definition at line 1324 of file SqlParser.php.

References TYPO3\CMS\Core\Database\SqlParser\getValue(), and TYPO3\CMS\Core\Database\SqlParser\nextPart().

Referenced by TYPO3\CMS\Core\Database\SqlParser\parseWhereClause().

◆ nextPart()

TYPO3\CMS\Core\Database\SqlParser::nextPart ( $parseString,
  $regex,
  $trimAll = FALSE 
)
protected

Strips off a part of the parseString and returns the matching part. Helper function for the parsing methods.

Parameters
string$parseStringParse string; if $regex finds anything the value of the first () level will be stripped of the string in the beginning. Further $parseString is left-trimmed (on success). Notice; parsestring is passed by reference.
string$regexRegex to find a matching part in the beginning of the string. Rules: You MUST start the regex with "^" (finding stuff in the beginning of string) and the result of the first parenthesis is what will be returned to you (and stripped of the string). Eg. '^(AND|OR|&&)[[:space:]]+' will return AND, OR or && if found and having one of more whitespaces after it, plus shorten $parseString with that match and any space after (by ltrim())
boolean$trimAllIf set the full match of the regex is stripped of the beginning of the string!
Returns
string The value of the first parenthesis level of the REGEX.

Definition at line 1302 of file SqlParser.php.

Referenced by TYPO3\CMS\Core\Database\SqlParser\getValue(), TYPO3\CMS\Core\Database\SqlParser\getValueOrParameter(), TYPO3\CMS\Core\Database\SqlParser\parseALTERTABLE(), TYPO3\CMS\Core\Database\SqlParser\parseCaseStatement(), TYPO3\CMS\Core\Database\SqlParser\parseCREATEDATABASE(), TYPO3\CMS\Core\Database\SqlParser\parseCREATETABLE(), TYPO3\CMS\Core\Database\SqlParser\parseDELETE(), TYPO3\CMS\Core\Database\SqlParser\parseDROPTABLE(), TYPO3\CMS\Core\Database\SqlParser\parseFieldDef(), TYPO3\CMS\Core\Database\SqlParser\parseFieldList(), TYPO3\CMS\Core\Database\SqlParser\parseFromTables(), TYPO3\CMS\Core\Database\SqlParser\parseINSERT(), TYPO3\CMS\Core\Database\SqlParser\parseSELECT(), TYPO3\CMS\Core\Database\SqlParser\parseSQL(), TYPO3\CMS\Core\Database\SqlParser\parseTRUNCATETABLE(), TYPO3\CMS\Core\Database\SqlParser\parseUPDATE(), and TYPO3\CMS\Core\Database\SqlParser\parseWhereClause().

◆ parseALTERTABLE()

TYPO3\CMS\Core\Database\SqlParser::parseALTERTABLE (   $parseString)
protected

Parsing ALTER TABLE query

Parameters
string$parseStringSQL string starting with ALTER TABLE
Returns
mixed Returns array with components of ALTER TABLE query on success, otherwise an error message string.
See also
compileALTERTABLE()

Definition at line 477 of file SqlParser.php.

References TYPO3\CMS\Core\Database\SqlParser\$parse_error, $result, TYPO3\CMS\Core\Database\SqlParser\getValue(), TYPO3\CMS\Core\Utility\GeneralUtility\inList(), TYPO3\CMS\Core\Database\SqlParser\nextPart(), TYPO3\CMS\Core\Database\SqlParser\parseError(), TYPO3\CMS\Core\Database\SqlParser\parseFieldDef(), and TYPO3\CMS\Core\Database\SqlParser\trimSQL().

Referenced by TYPO3\CMS\Core\Database\SqlParser\parseSQL().

◆ parseCaseStatement()

TYPO3\CMS\Core\Database\SqlParser::parseCaseStatement ( $parseString)
protected

Parsing a CASE ... WHEN flow-control construct. The output from this function can be compiled back with ->compileCaseStatement()

Parameters
string$parseStringThe string with the CASE ... WHEN construct, eg. "CASE field WHEN 1 THEN 0 ELSE ..." etc. NOTICE: passed by reference!
Returns
array If successful parsing, returns an array, otherwise an error string.
See also
compileCaseConstruct()

Definition at line 782 of file SqlParser.php.

References $result, TYPO3\CMS\Core\Database\SqlParser\getValue(), TYPO3\CMS\Core\Database\SqlParser\nextPart(), TYPO3\CMS\Core\Database\SqlParser\parseError(), and TYPO3\CMS\Core\Database\SqlParser\parseWhereClause().

Referenced by TYPO3\CMS\Core\Database\SqlParser\parseFieldList().

◆ parseCREATEDATABASE()

TYPO3\CMS\Core\Database\SqlParser::parseCREATEDATABASE (   $parseString)
protected

Parsing CREATE DATABASE query

Parameters
string$parseStringSQL string starting with CREATE DATABASE
Returns
mixed Returns array with components of CREATE DATABASE query on success, otherwise an error message string.

Definition at line 593 of file SqlParser.php.

References $result, TYPO3\CMS\Core\Database\SqlParser\nextPart(), TYPO3\CMS\Core\Database\SqlParser\parseError(), and TYPO3\CMS\Core\Database\SqlParser\trimSQL().

Referenced by TYPO3\CMS\Core\Database\SqlParser\parseSQL().

◆ parseCREATETABLE()

TYPO3\CMS\Core\Database\SqlParser::parseCREATETABLE (   $parseString)
protected

Parsing CREATE TABLE query

Parameters
string$parseStringSQL string starting with CREATE TABLE
Returns
mixed Returns array with components of CREATE TABLE query on success, otherwise an error message string.
See also
compileCREATETABLE()

Definition at line 391 of file SqlParser.php.

References TYPO3\CMS\Core\Database\SqlParser\$parse_error, $result, TYPO3\CMS\Core\Database\SqlParser\getValue(), TYPO3\CMS\Core\Database\SqlParser\nextPart(), TYPO3\CMS\Core\Database\SqlParser\parseError(), TYPO3\CMS\Core\Database\SqlParser\parseFieldDef(), and TYPO3\CMS\Core\Database\SqlParser\trimSQL().

Referenced by TYPO3\CMS\Core\Database\SqlParser\parseSQL().

◆ parseDELETE()

TYPO3\CMS\Core\Database\SqlParser::parseDELETE (   $parseString)
protected

Parsing DELETE query

Parameters
string$parseStringSQL string with DELETE query to parse
Returns
mixed Returns array with components of DELETE query on success, otherwise an error message string.
See also
compileDELETE()

Definition at line 337 of file SqlParser.php.

References TYPO3\CMS\Core\Database\SqlParser\$parse_error, $result, TYPO3\CMS\Core\Database\SqlParser\nextPart(), TYPO3\CMS\Core\Database\SqlParser\parseError(), TYPO3\CMS\Core\Database\SqlParser\parseWhereClause(), and TYPO3\CMS\Core\Database\SqlParser\trimSQL().

Referenced by TYPO3\CMS\Core\Database\SqlParser\parseSQL().

◆ parseDROPTABLE()

TYPO3\CMS\Core\Database\SqlParser::parseDROPTABLE (   $parseString)
protected

Parsing DROP TABLE query

Parameters
string$parseStringSQL string starting with DROP TABLE
Returns
mixed Returns array with components of DROP TABLE query on success, otherwise an error message string.

Definition at line 565 of file SqlParser.php.

References $result, TYPO3\CMS\Core\Database\SqlParser\nextPart(), TYPO3\CMS\Core\Database\SqlParser\parseError(), and TYPO3\CMS\Core\Database\SqlParser\trimSQL().

Referenced by TYPO3\CMS\Core\Database\SqlParser\parseSQL().

◆ parseError()

◆ parseEXPLAIN()

TYPO3\CMS\Core\Database\SqlParser::parseEXPLAIN (   $parseString)
protected

Parsing EXPLAIN query

Parameters
string$parseStringSQL string with EXPLAIN query to parse
Returns
mixed Returns array with components of EXPLAIN query on success, otherwise an error message string.
See also
parseSELECT()

Definition at line 372 of file SqlParser.php.

References $result, TYPO3\CMS\Core\Database\SqlParser\parseSELECT(), and TYPO3\CMS\Core\Database\SqlParser\trimSQL().

Referenced by TYPO3\CMS\Core\Database\SqlParser\parseSQL().

◆ parseFieldDef()

TYPO3\CMS\Core\Database\SqlParser::parseFieldDef ( $parseString,
  $stopRegex = '' 
)

Parsing the WHERE clause fields in the "WHERE [$parseString] ..." part of a query into a multidimensional array. The success of this parsing determines if that part of the query is supported by TYPO3.

Parameters
string$parseStringWHERE clause to parse. NOTICE: passed by reference!
string$stopRegexRegular expressing to STOP parsing, eg. '^(GROUP BY|ORDER BY|LIMIT)([[:space:]]*)'
Returns
mixed If successful parsing, returns an array, otherwise an error string.

Definition at line 1255 of file SqlParser.php.

References $result, TYPO3\CMS\Core\Database\SqlParser\getValue(), TYPO3\CMS\Core\Database\SqlParser\nextPart(), TYPO3\CMS\Core\Database\SqlParser\parseError(), and TYPO3\CMS\Core\Database\SqlParser\trimSQL().

Referenced by TYPO3\CMS\Core\Database\SqlParser\parseALTERTABLE(), and TYPO3\CMS\Core\Database\SqlParser\parseCREATETABLE().

◆ parseFieldList()

TYPO3\CMS\Core\Database\SqlParser::parseFieldList ( $parseString,
  $stopRegex = '' 
)

Parsing the fields in the "SELECT [$selectFields] FROM" part of a query into an array. The output from this function can be compiled back into a field list with ->compileFieldList() Will detect the keywords "DESC" and "ASC" after the table name; thus is can be used for parsing the more simply ORDER BY and GROUP BY field lists as well!

Parameters
string$parseStringThe string with fieldnames, eg. "title, uid AS myUid, max(tstamp), count(*)" etc. NOTICE: passed by reference!
string$stopRegexRegular expressing to STOP parsing, eg. '^(FROM)([[:space:]]*)'
Returns
array If successful parsing, returns an array, otherwise an error string.
See also
compileFieldList()

Definition at line 654 of file SqlParser.php.

References TYPO3\CMS\Core\Database\SqlParser\nextPart(), TYPO3\CMS\Core\Database\SqlParser\parseCaseStatement(), TYPO3\CMS\Core\Database\SqlParser\parseError(), and TYPO3\CMS\Core\Database\SqlParser\trimSQL().

Referenced by TYPO3\CMS\Core\Database\SqlParser\debug_parseSQLpart(), and TYPO3\CMS\Core\Database\SqlParser\parseSELECT().

◆ parseFromTables()

TYPO3\CMS\Core\Database\SqlParser::parseFromTables ( $parseString,
  $stopRegex = '' 
)

Parsing the tablenames in the "FROM [$parseString] WHERE" part of a query into an array. The success of this parsing determines if that part of the query is supported by TYPO3.

Parameters
string$parseStringList of tables, eg. "pages, tt_content" or "pages A, pages B". NOTICE: passed by reference!
string$stopRegexRegular expressing to STOP parsing, eg. '^(WHERE)([[:space:]]*)'
Returns
array If successful parsing, returns an array, otherwise an error string.
See also
compileFromTables()

Definition at line 818 of file SqlParser.php.

References TYPO3\CMS\Core\Database\SqlParser\getValue(), TYPO3\CMS\Core\Database\SqlParser\nextPart(), TYPO3\CMS\Core\Database\SqlParser\parseError(), and TYPO3\CMS\Core\Database\SqlParser\trimSQL().

Referenced by TYPO3\CMS\Core\Database\SqlParser\debug_parseSQLpart(), and TYPO3\CMS\Core\Database\SqlParser\parseSELECT().

◆ parseINSERT()

TYPO3\CMS\Core\Database\SqlParser::parseINSERT (   $parseString)
protected

Parsing INSERT query

Parameters
string$parseStringSQL string with INSERT query to parse
Returns
mixed Returns array with components of INSERT query on success, otherwise an error message string.
See also
compileINSERT()

Definition at line 247 of file SqlParser.php.

References TYPO3\CMS\Core\Database\SqlParser\$parse_error, $result, TYPO3\CMS\Core\Database\SqlParser\getValue(), TYPO3\CMS\Core\Database\SqlParser\nextPart(), TYPO3\CMS\Core\Database\SqlParser\parseError(), and TYPO3\CMS\Core\Database\SqlParser\trimSQL().

Referenced by TYPO3\CMS\Core\Database\SqlParser\parseSQL().

◆ parseSELECT()

TYPO3\CMS\Core\Database\SqlParser::parseSELECT (   $parseString,
$parameterReferences = NULL 
)
protected

Parsing SELECT query

Parameters
string$parseStringSQL string with SELECT query to parse
array$parameterReferencesArray holding references to either named (:name) or question mark (?) parameters found
Returns
mixed Returns array with components of SELECT query on success, otherwise an error message string.
See also
compileSELECT()

Definition at line 120 of file SqlParser.php.

References TYPO3\CMS\Core\Database\SqlParser\$parse_error, $result, TYPO3\CMS\Core\Database\SqlParser\nextPart(), TYPO3\CMS\Core\Database\SqlParser\parseError(), TYPO3\CMS\Core\Database\SqlParser\parseFieldList(), TYPO3\CMS\Core\Database\SqlParser\parseFromTables(), TYPO3\CMS\Core\Database\SqlParser\parseWhereClause(), and TYPO3\CMS\Core\Database\SqlParser\trimSQL().

Referenced by TYPO3\CMS\Core\Database\SqlParser\parseEXPLAIN(), TYPO3\CMS\Core\Database\SqlParser\parseSQL(), and TYPO3\CMS\Core\Database\SqlParser\parseWhereClause().

◆ parseSQL()

◆ parseStripslashes()

TYPO3\CMS\Core\Database\SqlParser::parseStripslashes (   $str)
protected

Strip slashes function used for parsing NOTICE: If a query being parsed was prepared for another database than MySQL this function should probably be changed

Parameters
string$strInput string
Returns
string Output string

Definition at line 1440 of file SqlParser.php.

Referenced by TYPO3\CMS\Core\Database\SqlParser\getValueInQuotes(), and TYPO3\CMS\Dbal\Database\SqlParser\getValueInQuotesMssql().

◆ parseTRUNCATETABLE()

TYPO3\CMS\Core\Database\SqlParser::parseTRUNCATETABLE (   $parseString)
protected

Parsing TRUNCATE TABLE query

Parameters
string$parseStringSQL string starting with TRUNCATE TABLE
Returns
mixed Returns array with components of TRUNCATE TABLE query on success, otherwise an error message string.

Definition at line 619 of file SqlParser.php.

References $result, TYPO3\CMS\Core\Database\SqlParser\nextPart(), TYPO3\CMS\Core\Database\SqlParser\parseError(), and TYPO3\CMS\Core\Database\SqlParser\trimSQL().

Referenced by TYPO3\CMS\Core\Database\SqlParser\parseSQL().

◆ parseUPDATE()

TYPO3\CMS\Core\Database\SqlParser::parseUPDATE (   $parseString)
protected

Parsing UPDATE query

Parameters
string$parseStringSQL string with UPDATE query to parse
Returns
mixed Returns array with components of UPDATE query on success, otherwise an error message string.
See also
compileUPDATE()

Definition at line 194 of file SqlParser.php.

References TYPO3\CMS\Core\Database\SqlParser\$parse_error, $result, TYPO3\CMS\Core\Database\SqlParser\getValue(), TYPO3\CMS\Core\Database\SqlParser\nextPart(), TYPO3\CMS\Core\Database\SqlParser\parseError(), TYPO3\CMS\Core\Database\SqlParser\parseWhereClause(), and TYPO3\CMS\Core\Database\SqlParser\trimSQL().

Referenced by TYPO3\CMS\Core\Database\SqlParser\parseSQL().

◆ parseWhereClause()

TYPO3\CMS\Core\Database\SqlParser::parseWhereClause ( $parseString,
  $stopRegex = '',
array &  $parameterReferences = array() 
)

Parsing the WHERE clause fields in the "WHERE [$parseString] ..." part of a query into a multidimensional array. The success of this parsing determines if that part of the query is supported by TYPO3.

Parameters
string$parseStringWHERE clause to parse. NOTICE: passed by reference!
string$stopRegexRegular expressing to STOP parsing, eg. '^(GROUP BY|ORDER BY|LIMIT)([[:space:]]*)'
array$parameterReferencesArray holding references to either named (:name) or question mark (?) parameters found
Returns
mixed If successful parsing, returns an array, otherwise an error string.

Definition at line 935 of file SqlParser.php.

References TYPO3\CMS\Core\Database\SqlParser\$parse_error, TYPO3\CMS\Core\Database\SqlParser\getValue(), TYPO3\CMS\Core\Database\SqlParser\getValueOrParameter(), TYPO3\CMS\Core\Utility\GeneralUtility\inList(), TYPO3\CMS\Core\Database\SqlParser\nextPart(), TYPO3\CMS\Core\Database\SqlParser\parseError(), TYPO3\CMS\Core\Database\SqlParser\parseSELECT(), and TYPO3\CMS\Core\Database\SqlParser\trimSQL().

Referenced by TYPO3\CMS\Core\Database\SqlParser\debug_parseSQLpart(), TYPO3\CMS\Core\Database\SqlParser\parseCaseStatement(), TYPO3\CMS\Core\Database\SqlParser\parseDELETE(), TYPO3\CMS\Core\Database\SqlParser\parseSELECT(), and TYPO3\CMS\Core\Database\SqlParser\parseUPDATE().

◆ trimSQL()

Member Data Documentation

◆ $lastStopKeyWord

TYPO3\CMS\Core\Database\SqlParser::$lastStopKeyWord = ''
Todo:
Define visibility

Definition at line 35 of file SqlParser.php.

◆ $parse_error