Skip to content

Latest commit

 

History

History
320 lines (249 loc) · 7.42 KB

File metadata and controls

320 lines (249 loc) · 7.42 KB

Dokumentasi Query Builder PHP

Membaca dokumentasi sangat disarankan agar tidak terjadi kesalahan saat menggunakannya.

Instalasi

Ada beberapa cara menginstall yang bisa di ikuti dibawah ini.

Membuat file composer.json

{
    "require": {
        "hilyahtech/query-builder-php": "^1.0"
    }
}

Kemudian lakukan instalasi dengan printah.

composer install

Atau Anda bisa menginstall secara langsung.

composer require hilyahtech/query-builder-php

Cara Cepat

require 'vendor/autoload.php';

$config = [
    'driver' => 'mysql',
    'host' => 'localhost',
    'database' => 'test',
    'username' => 'root',
    'password' => ''
];

$db = new \HilyahTech\QueryBuilder\DB($config);

Penggunakan Methods

Config

Database driver yang sudah diuji MySQL dan PostgreSQL.

$config = [
    # Database driver (optional)
    # Default value: mysql
    # values: mysql, pgsql
    'driver' => 'mysql',

    # Host name or IP Address (optional)
    # Example: 127.0.0.1:8000 (hostname:port)
    # Default value: localhost
    'host' => 'localhost',

    # Port (optional)
    # Default value: null
    'port' => ''

    # Database name (require)
    'database' => 'test',

    # Database username (require)
    'username' => 'root',

    # Database password (require)
    'password' => '',

    # Database charset (optional)
    # Default value: 'utf8'
    'charset' => 'utf8',

    # Database prefix (optional)
    # Default value: null
    'prefix' => ''
];

$db = new \HilyahTech\QueryBuilder\DB($config);

Daftar Isi

Methods

select

$db->table('users')->select('name, email');
# sql: "SELECT name, email FROM users"

$db->table('users')->select(['name', 'email']);
# sql: "SELECT name, email FROM users"

select functions (min, max, count, avg, sum)

$db->table('users')->max('follows');
# sql: "SELECT max(follows) FROM users"

$db->table('users')->sum('star');
# sql: "SELECT sum(star) FROM users"

table

$db->table('users');
# sql: "SELECT * FROM users"

$db->table('users, roles');
# sql: "SELECT * FROM users, roles"

$db->table(['users', 'roles']);
# sql: "SELECT * FROM users, roles"

$db->table('users AS user');
# sql: "SELECT * FROM users AS user"

# paremeter 2 hanya bisa digunakan jika kedua perameter string
$db->table('users', 'user');
# sql: "SELECT * FROM users AS user"

get and first

# get -> menampilkan semuanya
# first -> menampilkan 1

$db->table('users')->get();
# sql: "SELECT * FROM users"

$db->table('users')->first();
# sql: "SELECT * FROM users LIMIT 1"

join

Peringatan!: Mohon perhatikan jika menggunakan prefix apabila table menggunkan AS (alias) maka contohnya ht_users AS u dan ht_posts AS p. Kami berharap ini dapat membantu jika ada kendala saat menggunakan prefix dan join.

# Jika menggunakan prefix
$db->table('users AS u')->join('posts AS p', 'u.id', 'p.user_id')->get();
# sql: "SELECT * FROM ht_users AS u JOIN ht_posts AS p ON u.id = p.user_id"

# Tidak menggunakan prefix
$db->table('users AS u')->join('posts AS p', 'u.id', 'p.user_id')->get();
# sql: "SELECT * FROM users AS u JOIN posts AS p ON u.id = p.user_id"

# Jika menggunakan prefix dan tidak menggunakan AS (alias)
$db->table('users')->join('posts', 'users.id', 'posts.user_id')->get();
# sql: "SELECT * FROM ht_users JOIN ht_posts ON ht_users.id = ht_posts.user_id"

Ada 7 Method join

  • join()
  • leftJoin()
  • rightJoin()
  • leftOuterJoin()
  • rightOuterJoin()
  • fullOuterJoin()
$db->table('test')->join('check', 'test.id', 'check.test_id')->get();
# sql: "SELECT * FROM test JOIN check ON test.id = check.test_id"

$db->table('test')->leftJoin('check', 'test.id', 'check.test_id')->get();
# sql: "SELECT * FROM test LEFT JOIN check ON test.id = check.test_id"

$db->table('test')->fullOuterJoin('check', 'test.id', '=', 'check.test_id')->get();
# sql: "SELECT * FROM test FULL OUTER JOIN check ON test.id = check.test_id"

where

$db->table('users')->where(1)->get();
# sql: "SELECT * FROM users WHERE id = 1"

$db->table('users')->where('status', 1)->get();
# sql: "SELECT * FROM users WHERE status = 1"

$db->table('users')->where('age', '>', 18)->get();
# sql: "SELECT * FROM users WHERE age > 18"

$db->table('users')->where([['id', 1], ['status', 1]])->get();
# sql: "SELECT * FROM users WHERE id = 1 AND status = 1"

$db->table('users')->where([['id', 1], ['status', 1]], 'OR')->get();
# sql: "SELECT * FROM users WHERE id = 1 OR status = 1"

where in

$db->table('test')->whereIn('id', [1, 2, 3])->get();
# sql: "SELECT * FROM test WHERE id IN (1, 2, 3)"

$db->table('test')->whereNotIn('id', [1, 2, 3])->get();
# sql: "SELECT * FROM test WHERE id NOT IN (1, 2, 3)"

between

$db->table('test')->between('age', 17, 25)->get();
# sql: "SELECT * FROM test WHERE age BETWEEN 17, 25"

$db->table('test')->between('age', [17, 25])->get();
# sql: "SELECT * FROM test WHERE age BETWEEN 17, 25"

$db->table('test')->notBetween('age', [17, 25])->get();
# sql: "SELECT * FROM test WHERE age NOT BETWEEN 17, 25"

like

$db->table('test')->like('name', '%example%')->get();
# sql: "SELECT * FROM test WHERE name LIKE %example%"

$db->table('test')->notLike('name', '%example%')->get();
# sql: "SELECT * FROM test WHERE name NOT LIKE %example%"

groupBy

$db->table('test')->groupBy('id')->get();
# sql: "SELECT * FROM test GROUP BY id"

$db->table('test')->groupBy(['id', 'user_id'])->get();
# sql: "SELECT * FROM test GROUP BY id, user_id"

having

$db->table('test')->having('COUNT(user_id)', 5)->get();
# sql: "SELECT * FROM test HAVING COUNT(user_id) > 5"

$db->table('test')->having('COUNT(user_id)', '>=', 5)->get();
# sql: "SELECT * FROM test HAVING COUNT(user_id) >= 5"

$db->table('test')->having('COUNT(user_id) > ?', [2])->get();
# sql: "SELECT * FROM test HAVING COUNT(user_id) >= 5"

orderBy

$db->table('test')->orderBy('name')->get();
# sql: "SELECT * FROM test ORDER BY name ASC"

$db->table('test')->orderBy('name', 'DESC')->get();
# sql: "SELECT * FROM test ORDER BY name DESC"

limit

$db->table('test')->limit(10)->get();
# sql: "SELECT * FROM test LIMIT 10"

$db->table('test')->limit(10, 20)->get();
# sql: "SELECT * FROM test LIMIT 10, 20"

offset

$db->table('test')->offset(10)->get();
# sql: "SELECT * FROM test OFFSET 10"

pagination

$db->table('test')->pagination(10, 1)->get();
# sql: "SELECT * FROM test LIMIT 10 OFFSET 0"

$db->table('test')->pagination(10, 2)->get();
# sql: "SELECT * FROM test LIMIT 10 OFFSET 10"

insert

$data = [
    'username' => 'febrihidayan',
    'status' => 1
];

$db->table('users')->insert($data);
# sql: "INSERT INTO users(username, status) VALUES('febrihidayan', 1)"

update

$data = [
    'username' => 'febrihidayan',
    'status' => 1
];

$db->table('users')->where(1)->update($data);
# sql: "UPDATE users SET username = 'febrihidayan', status = 1 WHERE id = 1"

delete

$db->table('users')->where(1)->delete();
# sql: "DELETE FROM users WHERE id = 1"