lazarusphp/querybuilder

Lazarusphp 框架的 QueryBuilder 包

v1.0.0 2024-09-09 10:52 UTC

This package is auto-updated.

Last update: 2024-09-09 10:58:44 UTC


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 条件,否则将影响所有行。有关条件的更多信息 请点击此处