sergiodanilojr /
light-query-builder
| 1 | <?php |
||
| 2 | |||
| 3 | require __DIR__ . "/../vendor/autoload.php"; |
||
| 4 | |||
| 5 | use ElePHPant\LightQueryBuilder; |
||
| 6 | |||
| 7 | $lightQB = (new LightQueryBuilder())::setTable("users") |
||
| 8 | ->setFetchClass(stdClass::class); |
||
| 9 | |||
| 10 | /* Select */ |
||
| 11 | $select = $lightQB->select(); |
||
| 12 | //Returns 'SELECT * FROM users' |
||
| 13 | |||
| 14 | $selectWithColumns = $lightQB->select("fullname, email"); |
||
| 15 | //Returns 'SELECT fullname, email FROM users'; |
||
| 16 | |||
| 17 | /* Where */ |
||
| 18 | $where = $select->where("gender = :g", "g=male"); |
||
| 19 | //Returns 'SELECT * FROM users WHERE gender = :g' -> working with bind param in PDO |
||
| 20 | |||
| 21 | /* AND OR BETWEEN */ |
||
| 22 | $where->and("id >=2")->or("id <= 10"); |
||
| 23 | //Returns 'SELECT * FROM users WHERE gender = :g AND id >= 2 OR id <= 10' |
||
| 24 | |||
| 25 | $between = $select->where("DATE(birth)")->between("'2020-03-17'", "'2020-04-01'"); |
||
| 26 | //Returns 'SELECT * FROM users WHERE DATE(birth) BETWEEN '2020-03-17' AND '2020-04-01'' |
||
| 27 | |||
| 28 | /* JOINs */ |
||
| 29 | $lightQB->join("fullname", "clients", "client.user=users.id", LightQueryBuilder::INNER_JOIN); |
||
| 30 | //Returns 'SELECT fullname FROM users INNER JOIN clients ON client.user=users.id' |
||
| 31 | |||
| 32 | $lightQB->join("fullname", "clients", "client.user=users.id", LightQueryBuilder::RIGHT_JOIN); |
||
| 33 | //Returns 'SELECT fullname FROM users RIGHT JOIN clients ON client.user=users.id' |
||
| 34 | |||
| 35 | //[...] |
||
| 36 | |||
| 37 | /* Limit and Offset */ |
||
| 38 | $select->limit(3)->offset(2); |
||
| 39 | //Returns 'SELECT * FROM users LIMIT 3 OFFSET 2' |
||
| 40 | |||
| 41 | /* Count */ |
||
| 42 | $select->count(); |
||
| 43 | //Returns all RowCounts of the consult |
||
| 44 | |||
| 45 | /* Match Against */ |
||
| 46 | $lightQB->match("fullname, email", "Pedro", true); |
||
| 47 | //Returns the result of alll users that match with the fullname or email with 'Pedro'. |
||
| 48 | |||
| 49 | /* Write your own Query*/ |
||
| 50 | $lightQB->toQuery(" |
||
| 51 | SELECT * FROM my_table |
||
| 52 | WHERE id = 2 |
||
| 53 | ")->limit(2)->offset(1); |
||
| 54 | |||
| 55 | |||
| 56 | /* CRUD */ |
||
| 57 | |||
| 58 | //Create |
||
| 59 | $create = $lightQB->create(array(...)); |
||
|
0 ignored issues
–
show
Bug
introduced
by
Loading history...
|
|||
| 60 | |||
| 61 | //Featching Data |
||
| 62 | $select->get(); //Like that it'll bring only one result (first) [object] |
||
| 63 | $select->get(true); //Like that it'll bring all results [array] |
||
| 64 | |||
| 65 | //Update |
||
| 66 | $update = $lightQB->update(array(...), "WHERE id = :id", "id=2"); |
||
| 67 | |||
| 68 | //Delete |
||
| 69 | $lightQB->delete("WHERE id = :id", "id=2"); |
||
| 70 | |||
| 71 | /* Debugging */ |
||
| 72 | var_dump($lightQB->getFail(), $lightQB->getQuery()); |
||
| 73 | |||
| 74 | |||
| 75 | |||
| 76 | |||
| 77 |