vannghia / simple_query_builder
simple query builder
v1.0.0
2022-10-04 04:12 UTC
Requires
- ext-pdo: *
This package is not auto-updated.
Last update: 2025-06-27 19:13:22 UTC
README
Đề bài: Create Query Builder is a simple, methods-chaining dependency-free library to create SQL Queries simple. Supports databases which are supported by PDO
Người thực hiện : Vu Van Nghia
Download và run code tại đường dẫn https://github.com/vn0202/demo_simple_query_builder
install
composer require vannghia/simple_query_builder
Sử dụng
- Sử dụng autoload composer
- Cấu hình thông tin database trong
$config
$config = [ 'driver'=>'mysql', 'host'=>'localhost', 'dbname'=>'app', 'username'=>'root', 'password'=>'root', ]; Connection::$config = $config;
Có thể sử dụng trực tiếp QueryBuilder
DB::table('tbl_admin')->where(['id','=',20])->get();
- Trong thư mục
src\Model
, thêm các file model có cấu trúc như sau:
<?php namespace Vannghia\TestNghia\Model; use Vannghia\SimpleQueryBuilder\Model; class TblAdmin extends Model{ // $table chứa tên bảng cần truy xuất dữ liệu protected $table = 'tbl_admin'; }
-
Khi đó, để truy xuất dữ liệu từ bảng
tbl_admin
:- Lấy bản ghi đầu tiên:
$test = TblAdmin::first(); $test = TblAdmin::where(['id','>',20])->first()// lấy bản ghi đầu tiên có id > 20
- Lấy số lượng bản ghi:
$test = TblAdmin::count();//trả về tổng số bản ghi $test = TblAdmin::where(['id','>',20])->count();
- Chọn các giá trị cần lấy ( mặc định trả về gía trị của tất cả các cột )
$test = TblAdmin::select(['email','phone'])->get();//chỉ tra ve gia tri cua cot email và phone
- Lựa chọn có điều kiện:
$test = TblAdmin::where(['id','>',20])->where(['email','=','nghiavuxp0202@gmail.com'])->get(); or $test = TblAdmin::where(['id','>',20],['email','=','nghiavuxp0202@gmail.com'])->get();
-
Sắp xếp gía trị trả về:
$test = TblAdmin::where(['id','>',10])->orderBy(['email'],'desc')->get();
-
kết hợp bảng :
$test = TblAdmin::join('tbl_product',['tbl_product.creator','=','tbl_admin.id']) ->where(['id','>',20]) ->get(); $test = TblAdmin::rightjoin('tbl_product',['tbl_product.creator','=','tbl_admin.id']) ->where(['id','>',20]) ->get(); $test = TblAdmin::lefttjoin('tbl_product',['tbl_product.creator','=','tbl_admin.id']) ->where(['id','>',20]) ->get();
-
Chèn bản ghi:
$data = [ 'fullname'=>'vnpgroup' 'username'=>'VNPGROUP', 'password'=>md5('vnp'), 'email'=>'vnp@gmail.com', 'phone'=>123456789, 'address'=>'102 Thai Thinh', 'reg_date'=>time(), 'role'=>1, 'amdin_intro'=>2, ];
TblAdmin::create($data)// Chen ban ghi vao bang TblAdmin::insert($data)
- Cập nhật bản ghi:
```php
$data = [
'fullname'=>'VNP',
'email'=>'vnp@gmail.com'
];
TblAdmin::where(['id','=',43])->update($data);
- xóa bản ghi:
//xoa ban ghi TblAdmin::where(['id','=',44])->delete();
require "vendor/autoload.php"; use Vannghia\SimpleQueryBuilder\Config\Connection; use Vannghia\TestNghia\Model\TblAdmin; $config = [ 'driver'=>'mysql', 'host'=>'localhost', 'dbname'=>'app', 'username'=>'root', 'password'=>'root', ]; Connection::$config = $config; // lay ban ghi dau tien $test = TblAdmin::select(['email']) ->first(); // lay tat ca ban ghi $test = TblAdmin::get(); $test = TblAdmin::where(['id','>',20], ['email','=','nghiavuxp0202@gmail.com'))->limit(10,5)->get() $test = TblAdmin::where(['id','=',1]) ->select(['email','phone']) ->get(); //output object(Vannghia\SimpleQueryBuilder\Collection)#5 (1) { ["elements":"Vannghia\SimpleQueryBuilder\Collection":private]=> array(1) { [0]=> object(Vannghia\TestNghia\Model\TblAdmin)#6 (5) { ["original":protected]=> array(0) { } ["casts":protected]=> array(0) { } ["attributes":"Vannghia\SimpleQueryBuilder\Data":private]=> array(2) { ["email"]=> string(23) "nghiavuxp0202@gmail.com" ["phone"]=> string(10) "0981473790" } ["query"]=> object(Vannghia\SimpleQueryBuilder\QueryBuilder\QueryBuilder)#7 (9) { ["conn":"Vannghia\SimpleQueryBuilder\QueryBuilder\QueryBuilder":private]=> object(PDO)#8 (0) { } ["where":"Vannghia\SimpleQueryBuilder\QueryBuilder\QueryBuilder":private]=> string(0) "" ["whereCondition":"Vannghia\SimpleQueryBuilder\QueryBuilder\QueryBuilder":private]=> array(0) { } ["prepare":"Vannghia\SimpleQueryBuilder\QueryBuilder\QueryBuilder":private]=> NULL ["orderBy":"Vannghia\SimpleQueryBuilder\QueryBuilder\QueryBuilder":private]=> string(0) "" ["limit":"Vannghia\SimpleQueryBuilder\QueryBuilder\QueryBuilder":private]=> string(0) "" ["join":"Vannghia\SimpleQueryBuilder\QueryBuilder\QueryBuilder":private]=> string(0) "" } ["table":protected]=> string(9) "tbl_admin" } } } //