vannghia / simple_query_builder
简单查询构建器
v1.0.0
2022-10-04 04:12 UTC
Requires
- ext-pdo: *
This package is not auto-updated.
Last update: 2024-09-20 15:24:38 UTC
README
题目:创建查询构建器是一个简单、方法链式、无依赖的库,用于创建简单的SQL查询。支持PDO支持的所有数据库。
作者 : Vu Van Nghia
下载并运行代码请访问https://github.com/vn0202/demo_simple_query_builder
安装
composer require vannghia/simple_query_builder
使用
- 使用autoload composer
- 在
$config中配置数据库信息
$config = [ 'driver'=>'mysql', 'host'=>'localhost', 'dbname'=>'app', 'username'=>'root', 'password'=>'root', ]; Connection::$config = $config;
可以直接使用QueryBuilder
DB::table('tbl_admin')->where(['id','=',20])->get();
- 在
src\Model目录中,添加以下结构的文件
<?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'; }
-
然后,要从
tbl_admin表中检索数据- 获取第一条记录
$test = TblAdmin::first(); $test = TblAdmin::where(['id','>',20])->first()// lấy bản ghi đầu tiên có id > 20
- 获取记录数
$test = TblAdmin::count();//trả về tổng số bản ghi $test = TblAdmin::where(['id','>',20])->count();
- 选择需要获取的值(默认返回所有列的值)
$test = TblAdmin::select(['email','phone'])->get();//chỉ tra ve gia tri cua cot email và phone
- 选择条件
$test = TblAdmin::where(['id','>',20])->where(['email','=','nghiavuxp0202@gmail.com'])->get(); or $test = TblAdmin::where(['id','>',20],['email','=','nghiavuxp0202@gmail.com'])->get();
-
对返回值进行排序
$test = TblAdmin::where(['id','>',10])->orderBy(['email'],'desc')->get();
-
结合表
$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();
-
插入记录
$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)// 将记录插入到TblAdmin表中的TblAdmin::insert($data)
- Cập nhật bản ghi:
```php
$data = [
'fullname'=>'VNP',
'email'=>'vnp@gmail.com'
];
TblAdmin::where(['id','=',43])->update($data);
- 删除记录
//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" } } } //