lazarusphp / querybuilder
Lazarusphp 框架的 QueryBuilder 包
Requires
- lazarusphp/databasemanager: ^1.0.0
README
什么是LazarusQB?
Lazarus QB 是一个小型库,旨在将 SQL 语句写入可读格式。
需求
- PHP 知识
- 支持 PHP 和 composer 的 Web 服务器
- lazarusphp/dbmanager 脚本(通过 composer 安装下载)
如何安装?
composer require lazarusphp/qb
如果您想修改此脚本以与自己的数据库设置一起使用,您只需从发行版部分下载文件即可
包含什么?
- 选择
- findorfail({id});
- findbyid({$id});
- 插入
- 更新
- 删除
- 连接(内连接、左连接、右连接和交叉连接)
- WHERE 子句
- where
- orwhere
- in 和 not in
- between 和 orBetween
- like 和 not like 或 like 或 Notlike
- Having
- 按顺序(支持多个值)
- 分组
如何使用?
由于此脚本旨在与 lazarusphp 框架一起使用,以下示例和指南将适用于 QB
实例化连接?
LazarusQb 被设计为一个模型驱动的查询构建器,这意味着需要一个类来与数据库连接。
创建类(Users.php)
<?php namespace App\Http\Model; class Users extends Model { }
User.php 创建后扩展到 Model,Model 类最终通过 QueryBuilder 核心类扩展到数据库
User.php 的主要目的是允许用户创建和执行自定义查询构建器函数 更多关于自定义代码
建立连接
创建了一个模型类后,只需要实例化连接
namespace App\Http\Controllers; use App\Http\Model\Users; class HomeController { public function index() { $users = Users(); } }
建立初始连接后,所有 SQL 语句都将可用,还应注意的是,不需要指定主表名,因为这是在创建模型类时完成的
User.php 将连接到名为 users 的表,这意味着如果您创建一个名为 UserRoles 的类,则需要一个名为 userroles 的表
获取结果(选择)
public function index() { $users = Users(); $users->select()->get(); }
获取第一条记录
public function index() { $users = Users(); $users->select()->first(); }
为了更好地控制结果,也可以使用 save() 方法,save() 方法是 get() 和 first() 中使用的基本方法。
通过调用 save(),可以访问内置方法,如 fetchAll()、fetch() 和 rowCount(),这为 Querybuilder 提供了更多灵活性和自由度
在选择语句中限制值
可以通过将值添加到选择语句中来选择表中的特定列
public function index() { $users = Users(); $users->select("username","email","password","firstname","lastname")->get(); }
如果选择方法为空,则仅调用通配符 (*) 并选择所有值。
使用别名
这通常用于连接,但查询构建器还支持表别名,这通过 as() 方法完成
public function insert() { $users = Users(); $users->select("u.username")->as("u")->where("u.username","mrbean")->save(); }
插入值
为了将数据插入到数据库中,用户需要指定值,这可以通过我们的键对魔法方法完成
public function insert() { $users = Users(); $users->username = "mrbean"; $users->password = password_hash("test",PASSWORD_DEFAULT); $users->insert()->save(); }
检索最后一个 id 目前尚未实现
更新数据
与插入类似,更新使用键对魔法方法将数据传递到数据库
public function update() { $users = Users(); $users->username = "mrbean"; $users->password = password_hash("Apple12345",PASSWORD_DEFAULT); $users->insert()->where("id",1)->save(); }
删除记录
为了删除记录,需要使用 delete() 方法。
public function update() { $users = Users(); $users->delete()->where("id",1)->save(); }
请注意,当使用更新和删除时,必须添加 where 条件,否则将影响所有行。有关条件的更多信息 请点击此处