Membaca dokumentasi sangat disarankan agar tidak terjadi kesalahan saat menggunakannya.
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 installAtau Anda bisa menginstall secara langsung.
composer require hilyahtech/query-builder-phprequire 'vendor/autoload.php';
$config = [
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'test',
'username' => 'root',
'password' => ''
];
$db = new \HilyahTech\QueryBuilder\DB($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);- select
- select functions (min, max, count, avg, sum)
- table
- get and first
- join
- where
- where in
- between
- like
- groupBy
- having
- orderBy
- limit
- offset
- pagination
- insert
- update
- delete
$db->table('users')->select('name, email');
# sql: "SELECT name, email FROM users"
$db->table('users')->select(['name', 'email']);
# sql: "SELECT name, email FROM users"$db->table('users')->max('follows');
# sql: "SELECT max(follows) FROM users"
$db->table('users')->sum('star');
# sql: "SELECT sum(star) FROM users"$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 -> menampilkan semuanya
# first -> menampilkan 1
$db->table('users')->get();
# sql: "SELECT * FROM users"
$db->table('users')->first();
# sql: "SELECT * FROM users LIMIT 1"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"$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"$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)"$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"$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%"$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"$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"$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"$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"$db->table('test')->offset(10)->get();
# sql: "SELECT * FROM test OFFSET 10"$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"$data = [
'username' => 'febrihidayan',
'status' => 1
];
$db->table('users')->insert($data);
# sql: "INSERT INTO users(username, status) VALUES('febrihidayan', 1)"$data = [
'username' => 'febrihidayan',
'status' => 1
];
$db->table('users')->where(1)->update($data);
# sql: "UPDATE users SET username = 'febrihidayan', status = 1 WHERE id = 1"$db->table('users')->where(1)->delete();
# sql: "DELETE FROM users WHERE id = 1"