Skip to content

Неправильная подстановка bindings #47

@z80maniac

Description

@z80maniac

Вот такой код:

$db = new ClickHouseDB\Client([
    "host" => "127.0.0.1",
    "port" => 8123,
    "username" => "default",
    "password" => ""
]);

$db->select("SELECT :a, :b", [
    "a" => ":b",
    "b" => ":a"
])->rows();

выдаёт ошибку:

PHP Fatal error:  Uncaught ClickHouseDB\DatabaseException: Syntax error: failed at position 10: :a'', ':a' FORMAT JSON. Expected one of: identifier, alias, AS, token, AND, OR, BETWEEN, IS, LIKE, NOT LIKE, IN, NOT IN, GLOBAL IN, GLOBAL NOT IN, Comma, QuestionMark, ORDER BY, SETTINGS, INTO OUTFILE, FORMAT, FROM, PREWHERE, WHERE, GROUP BY, WITH, HAVING, LIMIT, UNION ALL
IN:SELECT '':a'', ':a' FORMAT JSON in /home/user/test/phpcl_bug/phpClickHouse/src/Statement.php:162
Stack trace:
#0 /home/user/test/phpcl_bug/phpClickHouse/src/Statement.php(196): ClickHouseDB\Statement->error()
#1 /home/user/test/phpcl_bug/phpClickHouse/src/Statement.php(210): ClickHouseDB\Statement->check()
#2 /home/user/test/phpcl_bug/phpClickHouse/src/Statement.php(459): ClickHouseDB\Statement->init()
#3 /home/user/test/phpcl_bug/test.php(15): ClickHouseDB\Statement->rows()
#4 {main}
  thrown in /home/user/test/phpcl_bug/phpClickHouse/src/Statement.php on line 162

Другой пример:

$db->select("SELECT :a, :a2", [
    "a" => "x",
    "a2" => "x"
])->rows();
PHP Fatal error:  Uncaught ClickHouseDB\DatabaseException: Syntax error: failed at position 16: 2 FORMAT JSON. Expected one of: identifier, alias, AS, token, AND, OR, BETWEEN, IS, LIKE, NOT LIKE, IN, NOT IN, GLOBAL IN, GLOBAL NOT IN, Comma, QuestionMark, ORDER BY, SETTINGS, INTO OUTFILE, FORMAT, FROM, PREWHERE, WHERE, GROUP BY, WITH, HAVING, LIMIT, UNION ALL
IN:SELECT 'x', 'x'2 FORMAT JSON in /home/user/test/phpcl_bug/phpClickHouse/src/Statement.php:162
Stack trace:
#0 /home/user/test/phpcl_bug/phpClickHouse/src/Statement.php(196): ClickHouseDB\Statement->error()
#1 /home/user/test/phpcl_bug/phpClickHouse/src/Statement.php(210): ClickHouseDB\Statement->check()
#2 /home/user/test/phpcl_bug/phpClickHouse/src/Statement.php(459): ClickHouseDB\Statement->init()
#3 /home/user/test/phpcl_bug/test.php(22): ClickHouseDB\Statement->rows()
#4 {main}
  thrown in /home/user/test/phpcl_bug/phpClickHouse/src/Statement.php on line 162

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions