Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DBQuery builder #1

Open
KarelWintersky opened this issue Feb 28, 2020 · 1 comment
Open

DBQuery builder #1

KarelWintersky opened this issue Feb 28, 2020 · 1 comment

Comments

@KarelWintersky
Copy link
Collaborator

Не поддерживает конструкции вида:

$sql = (new DBQueryBuilder())
            ->select("COUNT(*)")
            ->from('articles_comments')
            ->where(['item' => ':article_id', 'deleted' => 0 ])
            ->build();

превращает их в:

SELECT  COUNT(*)  FROM articles_comments  WHERE :article_id AND 0
  1. То есть интерпретирует аргументы where не более чем как массив строк, а не массив соотношений.

  2. Не понимает два ->where($field, $value)

  3. Не понимает аргументы ->where($field, $value, $condition = '=', $logic_operator = 'AND' )

А надо ли, потому что это закрывает такое:

->where($condition, $value);

->where('id = :id', [ 'id' => 5 ]);
или
->where('id = ? ', 5); // с проверкой типа аргумента и подстановкой значения в PDO BIND соотв типа
  1. ->build() метод должен очищать все имеющиеся значения.

  2. Зачем всё это? Нужен лёгкий билдер запросов - и проверенный сообществом!

  3. Раннер запроса прямо в билдере:

$sql = (new DBQueryBuilder())->update('articles')->data(['ncomments = ncomments + 1'])->where('id = :id');

@KarelWintersky
Copy link
Collaborator Author

partially fixed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant