{"id":16673305,"url":"https://github.com/compolomus/sqlquerybuilder","last_synced_at":"2025-04-09T20:06:16.345Z","repository":{"id":56956988,"uuid":"92433935","full_name":"Compolomus/SQLQueryBuilder","owner":"Compolomus","description":"Light simple query builder","archived":false,"fork":false,"pushed_at":"2018-05-09T04:08:54.000Z","size":95,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-09T20:06:11.003Z","etag":null,"topics":["builder","mysql","pdo-mysql","php7","querybuilder","sql","sqlbuilder"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Compolomus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-05-25T18:46:22.000Z","updated_at":"2025-03-05T06:43:38.000Z","dependencies_parsed_at":"2022-08-21T04:40:22.200Z","dependency_job_id":null,"html_url":"https://github.com/Compolomus/SQLQueryBuilder","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Compolomus%2FSQLQueryBuilder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Compolomus%2FSQLQueryBuilder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Compolomus%2FSQLQueryBuilder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Compolomus%2FSQLQueryBuilder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Compolomus","download_url":"https://codeload.github.com/Compolomus/SQLQueryBuilder/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248103872,"owners_count":21048245,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["builder","mysql","pdo-mysql","php7","querybuilder","sql","sqlbuilder"],"created_at":"2024-10-12T12:25:44.794Z","updated_at":"2025-04-09T20:06:16.318Z","avatar_url":"https://github.com/Compolomus.png","language":"PHP","readme":"# Koenig LSQLQueryBuilder\n\n[![License](https://poser.pugx.org/compolomus/light-sql-query-builder/license)](https://packagist.org/packages/compolomus/light-sql-query-builder)\n\n[![Build Status](https://scrutinizer-ci.com/g/Compolomus/SQLQueryBuilder/badges/build.png?b=master)](https://scrutinizer-ci.com/g/Compolomus/SQLQueryBuilder/build-status/master)\n[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/Compolomus/SQLQueryBuilder/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/Compolomus/SQLQueryBuilder/?branch=master)\n[![Code Coverage](https://scrutinizer-ci.com/g/Compolomus/SQLQueryBuilder/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/Compolomus/SQLQueryBuilder/?branch=master)\n[![Code Climate](https://codeclimate.com/github/Compolomus/SQLQueryBuilder/badges/gpa.svg)](https://codeclimate.com/github/Compolomus/SQLQueryBuilder)\n[![SensioLabsInsight](https://insight.sensiolabs.com/projects/783c680b-cf5e-49ec-bc21-c4d50f257974/mini.png)](https://insight.sensiolabs.com/projects/783c680b-cf5e-49ec-bc21-c4d50f257974)\n[![Downloads](https://poser.pugx.org/compolomus/light-sql-query-builder/downloads)](https://packagist.org/packages/compolomus/light-sql-query-builder)\n\n## Установка:\n\ncomposer require compolomus/light-sql-query-builder\n\n## Применение:\n\n```php\nuse Compolomus\\LSQLQueryBuilder\\Builder;\n\nrequire __DIR__ . '/vendor/autoload.php';\n\n$builder = new Builder('users');\n\necho '---SELECT---\u003cbr\u003e\u003cbr\u003e';\n\necho $builder-\u003eselect(['id' =\u003e 'user_id', 'name', 'email'])\n    -\u003ewhere([['id', '=', 15], ['firm_id', 'not in', [1, 2, 3]]])\n    -\u003ewhere([['age', '\u003e', 17], ['friends', '\u003e=', 177]], 'or')\n    -\u003egroup(['age', 'friends'])\n    -\u003eorder(['salary', 'experience'], 'desc')\n        -\u003easc(['age', 'size'])\n    -\u003elimit(5, 10, 'page');\n\n/*\n    SELECT `user_id` AS `id`,`name`,`email` \n        FROM `users` \n        WHERE (`id` = :59ee533076W AND `firm_id` NOT IN :59ee571790W) \n            AND (`age` \u003e :592cd57379W OR `friends` \u003e= :592cd61484W) \n        GROUP BY `age`,`friends` \n        ORDER BY `age`,`size` ASC,\n                    `salary`,`experience` DESC \n        LIMIT 45 OFFSET 5\n*/\n\n/*\n    Support 89 MYSQL Field function[one argument] (count, min, max... etc)\n*/\n\necho '\u003cbr\u003e\u003cbr\u003e---COUNT#1---\u003cbr\u003e\u003cbr\u003e';\n\necho $builder-\u003eselect()\n    -\u003esetFunction('*', 'count')\n    -\u003ewhere()\n        -\u003eadd('age', '=', 32)\n    -\u003egroup(['position'])\n    -\u003eorder(['name'], 'desc')\n    -\u003elimit(10, 20);\n\n/*\n    SELECT COUNT(*) \n        FROM `users` \n        WHERE (`age` = :598bf03980W) \n        GROUP BY `position` \n        ORDER BY `name` DESC \n        LIMIT 20 OFFSET 10\n*/\n\necho '\u003cbr\u003e\u003cbr\u003e---COUNT#2---\u003cbr\u003e\u003cbr\u003e';\n\necho $builder-\u003eselect(['count' =\u003e '*|count']);\n\n/*\n    SELECT COUNT(*) AS `count`\n        FROM `users`\n*/\n\necho '\u003cbr\u003e\u003cbr\u003e---DELETE BY ID---\u003cbr\u003e\u003cbr\u003e';\n\necho $builder-\u003edelete(5);\n\n/*\n    DELETE FROM `users` \n        WHERE (`id` = :593b785726W)\n*/\n\necho '\u003cbr\u003e\u003cbr\u003e---DELETE BY FIELD---\u003cbr\u003e\u003cbr\u003e';\n\necho $builder-\u003edelete(15, 'userid');\n\n/*\n    DELETE FROM `users` \n        WHERE (`userid` = :593b756573W)\n*/\n\necho '\u003cbr\u003e\u003cbr\u003e---DELETE WITH WHERE---\u003cbr\u003e\u003cbr\u003e';\n\necho $builder-\u003edelete()\n    -\u003ewhere()\n        -\u003eadd('rank', 'between', [12, 15]);\n\n/*\n    DELETE FROM `users` \n        WHERE (`rank` BETWEEN :5979f19816W)\n*/\n\necho '\u003cbr\u003e\u003cbr\u003e---INSERT FIELDS AND VALUES---\u003cbr\u003e\u003cbr\u003e';\n\necho $builder-\u003einsert()\n    -\u003efields(['name', 'email', 'age'])\n    -\u003evalues(['Vasya', 'vasya@gmail.com', 22])\n    -\u003evalues(['Petya', 'petya@gmail.com', 24]);\n\n/*\n    INSERT INTO `users` \n        (`name`,`email`,`age`) \n        VALUES \n            (:59b8773308I,:59b8798017I,:59b8791062I),\n            (:59b8754434I,:59b8727155I,:59b8728332I)\n*/\n\necho '\u003cbr\u003e\u003cbr\u003e---INSERT ARRAY(FIELDS =\u003e VALUES)---\u003cbr\u003e\u003cbr\u003e';\n\necho $builder-\u003einsert([\n    'name' =\u003e 'Oleg',\n    'email' =\u003e 'oleg@gmail.com',\n    'age' =\u003e 33\n]);\n\n/*\n    INSERT INTO `users` \n        (`name`,`email`,`age`) \n        VALUES \n            (:59b8702032I,:59b8702274I,:59b8735242I)\n*/\n\necho '\u003cbr\u003e\u003cbr\u003e---INSERT PREPARE WITH FIELDS---\u003cbr\u003e\u003cbr\u003e';\n\necho $builder-\u003einsert()\n    -\u003efields(['name', 'email', 'age']);\n\n/*\n    INSERT INTO `users` \n        (`name`,`email`,`age`) \n        VALUES (?,?,?)\n*/\n\necho '\u003cbr\u003e\u003cbr\u003e---UPDATE#1---\u003cbr\u003e\u003cbr\u003e';\n\necho $builder-\u003eupdate([\n    'user' =\u003e 11,\n    'post' =\u003e 345,\n    'text' =\u003e 'Text'\n])\n    -\u003ewhere()\n        -\u003eadd('test', 'regexp', '^.....$');\n\n/*\n    UPDATE `users` \n        SET \n            `user` = :5923849640U,\n            `post` = :5923828461U,\n            `text` = :5923846245U \n        WHERE (`test` REGEXP :5923827411W)\n*/\n\necho '\u003cbr\u003e\u003cbr\u003e---UPDATE#2---\u003cbr\u003e\u003cbr\u003e';\n\necho $builder-\u003eupdate()\n    -\u003efields(['name', 'subname'])\n    -\u003evalues(['test', 'testus'])\n    -\u003ewhere([], 'or')\n        -\u003eadd('growth', '\u003c', 180)\n        -\u003eadd('growth', '\u003e', 140)\n    -\u003eorder(['name'], 'desc')\n    -\u003elimit(10, 20, 'offset');\n\n/*\n    UPDATE `users` \n        SET \n            `name` = :5923864911U,\n            `subname` = :5923845311U \n        WHERE (`growth` \u003c :5923863542W OR `growth` \u003e :5923879798W) \n        ORDER BY `name` DESC \n        LIMIT 10 OFFSET 20\n*/\n\necho '\u003cbr\u003e\u003cbr\u003e---UPDATE#3---\u003cbr\u003e\u003cbr\u003e';\n\necho $builder-\u003eupdate()\n    -\u003efields(['name', 'email', 'age']);\n\n/*\n    UPDATE `users` SET `name` = ?,`email` = ?,`age` = ?\n*/\n\necho '\u003cbr\u003e\u003cbr\u003e---JOIN#1---\u003cbr\u003e\u003cbr\u003e';\n\necho $builder-\u003eselect()\n    -\u003ejoin('test', 't', [['id', 'tid'], ['did', 'mid']], 'cross');\n\n/*\n    SELECT * FROM `users` \n        CROSS JOIN `test` AS `t` \n            ON \n                `users`.`id` = `test`.`tid` \n            AND `users`.`did` = `test`.`mid`\n*/\n\necho '\u003cbr\u003e\u003cbr\u003e---JOIN#2---\u003cbr\u003e\u003cbr\u003e';\n\necho $builder-\u003eselect()\n    -\u003ejoin('test2')\n    -\u003eaddOn([['fid', 'gid']])\n    -\u003esetType('right');\n\n/*\n    SELECT * FROM `users`\n        RIGHT JOIN `test2`\n        ON `users`.`fid` = `test2`.`gid`\n*/\n\necho '\u003cbr\u003e\u003cbr\u003e---JOIN#3---\u003cbr\u003e\u003cbr\u003e';\n\necho $builder-\u003eselect()\n    -\u003ejoin('test3')\n    -\u003eusing('qwerty');\n\n/*\n    SELECT * FROM `users` LEFT JOIN `test3` USING(`qwerty`)\n*/\n\necho '\u003cbr\u003e\u003cbr\u003e---JOIN#4---\u003cbr\u003e\u003cbr\u003e';\n\necho $builder-\u003eselect()\n    -\u003ejoin('test4')\n        -\u003eaddOn([['rid', 'vid']])\n        -\u003esetAlias('t4')\n        -\u003esetType('cross')\n    -\u003ejoin('test5', 't5', [['aid', 'mid'], ['bid', 'cid']], 'inner');\n    \n/*\n    SELECT * FROM `users` \n        CROSS JOIN `test4` AS `t4` \n        INNER JOIN `test5` AS `t5` \n            ON `users`.`rid` = `test4`.`vid` \n            AND `users`.`aid` = `test5`.`mid` \n            AND `users`.`bid` = `test5`.`cid`\n*/    \n\necho '\u003cbr\u003e\u003cbr\u003e---JOIN#5---\u003cbr\u003e\u003cbr\u003e';\necho $builder-\u003eselect()\n    -\u003ejoin('testus', 'ts')\n        -\u003esetType('right')\n    -\u003ejoin('testus2', 'ts2')\n        -\u003eusing('user');\n\n/*\n    SELECT * FROM `users`\n        RIGHT JOIN `testus` AS `ts`\n        LEFT JOIN `testus2` AS `ts2`\n    USING(`user`)\n*/\n\necho '\u003cbr\u003e\u003cbr\u003e---PLACEHOLDERS---\u003cbr\u003e\u003cbr\u003e';\n\necho '\u003cpre\u003e' . print_r($builder-\u003eplaceholders(), true) . '\u003c/pre\u003e';\n\n/*\nArray\n(\n    [:59ee533076W] =\u003e 15\n    [:59ee571790W] =\u003e (1,2,3)\n    [:592cd57379W] =\u003e 17\n    [:592cd61484W] =\u003e 177\n    [:598bf03980W] =\u003e 32\n    [:593b785726W] =\u003e 5\n    [:593b756573W] =\u003e 15\n    [:5979f19816W] =\u003e 12 AND 15\n    [:59b8773308I] =\u003e Vasya\n    [:59b8798017I] =\u003e vasya@gmail.com\n    [:59b8791062I] =\u003e 22\n    [:59b8754434I] =\u003e Petya\n    [:59b8727155I] =\u003e petya@gmail.com\n    [:59b8728332I] =\u003e 24\n    [:59b8702032I] =\u003e Oleg\n    [:59b8702274I] =\u003e oleg@gmail.com\n    [:59b8735242I] =\u003e 33\n    [:5923849640U] =\u003e 11\n    [:5923828461U] =\u003e 345\n    [:5923846245U] =\u003e Text\n    [:5923827411W] =\u003e ^.....$\n    [:5923864911U] =\u003e test\n    [:5923845311U] =\u003e testus\n    [:5923863542W] =\u003e 180\n    [:5923879798W] =\u003e 140\n)\n*/\n\n```\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcompolomus%2Fsqlquerybuilder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcompolomus%2Fsqlquerybuilder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcompolomus%2Fsqlquerybuilder/lists"}