
 Abius X - 2015-04-09 16:35:58 - 
In reply to message 1 from behnamyThis package can be used to break down a SQL statement to its building blocks, i.e tokens. For example:
SELECT * FROM users WHERE /* some comment */ username='admin' AND password=1234
Would become:
Array
(
    [0] => Array
        (
            [original] => SELECT
            [type] => keyword
            [position] => 0
            [length] => 6
            [clean] => SELECT
        )
    [1] => Array
        (
            [original] => *
            [type] => identifier
            [position] => 7
            [length] => 1
            [clean] => *
        )
    [2] => Array
        (
            [original] => FROM
            [type] => keyword
            [position] => 9
            [length] => 4
            [clean] => FROM
        )
    [3] => Array
        (
            [original] => users
            [type] => identifier
            [position] => 14
            [length] => 5
            [clean] => users
        )
    [4] => Array
        (
            [original] => WHERE
            [type] => keyword
            [position] => 20
            [length] => 5
            [clean] => WHERE
        )
    [5] => Array
        (
            [original] => /* some comment */
            [type] => multiline-comment
            [position] => 26
            [length] => 18
            [clean] => /* some comment */
        )
    [6] => Array
        (
            [original] => username
            [type] => identifier
            [position] => 45
            [length] => 8
            [clean] => username
        )
    [7] => Array
        (
            [original] => =
            [type] => symbol
            [position] => 53
            [length] => 1
            [clean] => =
        )
    [8] => Array
        (
            [original] => 'admin'
            [type] => string
            [position] => 54
            [length] => 7
            [clean] => 'admin'
        )
    [9] => Array
        (
            [original] => AND
            [type] => keyword
            [position] => 62
            [length] => 3
            [clean] => AND
        )
    [10] => Array
        (
            [original] => password
            [type] => function
            [position] => 66
            [length] => 8
            [clean] => PASSWORD
        )
    [11] => Array
        (
            [original] => =
            [type] => symbol
            [position] => 74
            [length] => 1
            [clean] => =
        )
    [12] => Array
        (
            [original] => 1234
            [type] => number
            [position] => 75
            [length] => 4
            [clean] => 1234
        )
)
This information can be used to check security of the SQL query, as well as making it nicer, uniformer, and understanding its structure so that you can perform caching.