scrnr/query-builder

v1.0.0 2023-05-01 19:23 UTC

This package is auto-updated.

Last update: 2024-09-30 01:41:21 UTC


README

Packagist PHP Version Packagist Version Packagist License

点击此处查看完整文档

目录

描述 🔝

PHP 数据库查询库是一个强大且易于使用的 PHP 库,允许您轻松编写查询到数据库并接收一个构建的查询字符串。它提供了一个简单直观的界面,用于在您的 PHP 代码中构建复杂的 SQL 语句。

特性 🔝

  • 易于使用:该库提供了一个简单的接口来构建查询。您可以轻松创建复杂的 SQL 语句,而无需编写原始 SQL 代码。
  • 安全:该库在设计时考虑了安全性。它使用预处理语句来防止 SQL 注入攻击。
  • 灵活:该库支持多种 SQL 操作,如 SELECT、INSERT、UPDATE、DELETE。
  • 面向对象方法:该库遵循面向对象的方法,使开发人员更容易在 PHP 中与数据库交互。
  • 易于集成:该库易于集成到现有的 PHP 项目中。

安装 🔝

您可以使用 Composer 安装此库。只需将以下行添加到您的 composer.json 文件中

"require": {
  "scrnr/query-builder": "*"
}

或者,您可以使用以下 命令

composer require scrnr/query-builder

如何使用 🔝

要使用此库,首先,您需要创建一个新的 QueryBuilder 类实例

use Scrnr\QueryBuilder\QueryBuilder;

$queryBuilder = new QueryBuilder();

然后,您可以使用类提供的各种方法来构建您的查询。`QueryBuilder` 类有 四个 公共方法

示例 🔝

以下示例演示了如何使用 `QueryBuilder` 类来构建 SQL 语句。

<?php

// Include the namespace
use Scrnr\QueryBuilder\QueryBuilder;

// Require the Composer autoload file
require_once __DIR__ . '/vendor/autoload.php';

// Create a new QueryBuilder instance
$queryBuilder = new QueryBuilder();

第一个示例 🔝

$queryBuilder->select('products')->all()->getQuery();

输出

SELECT products.* FROM products

在此示例中,我们使用 表名all() 方法调用 select() 方法来选择所有列。然后,我们调用 getQuery() 方法来获取 SQL 查询。

第二个示例 🔝

$queryBuilder->select('posts')
             ->columns('id', 'title', 'content', 'date')
             ->from('category')->alias('title', 'category')
             ->innerJoin('categories')->on('category_id', 'id')
             ->getQuery();

输出

SELECT posts.id, posts.title, posts.content, posts.date, category.title AS category
FROM posts
INNER JOIN categories
ON posts.category_id = categories.id

在此示例中,我们使用 表名 调用 select() 方法,使用 columns() 方法选择特定的列,使用 第二个表名 调用 from() 方法,并使用 alias() 方法指定列及其别名,最后使用 innerJoin() 方法连接 categories 表。最后,我们调用 getQuery() 方法来获取 SQL 查询。

第三个示例 🔝

$queryBuilder->select('products')
             ->all()
             ->where()
               ->equal('category')
             ->end()
             ->order()
             ->limit()
             ->getAll(['laptop', 'price', 10]);

输出

Array
(
  [0] => SELECT products.* FROM products WHERE products.category = :products_category ORDER BY :order ASC LIMIT :limit
  [1] => Array
      (
        [:products_category] => laptop
        [:order] => price
        [:limit] => 10
      )
)

在这个示例中,我们使用select()方法传入表名all()方法来选择所有列。然后,我们调用where()方法开始构建WHERE子句,使用equal()方法指定条件,并使用end()方法结束WHERE子句。接下来,我们调用order()方法来对结果进行排序,以及limit()方法来限制返回的结果数量。最后,我们调用getAll()方法来获取SQL查询及其准备好的参数数组。

有关getAll()方法的更多信息,请点击这里

贡献 🔝

欢迎为这个库做出贡献。您可以在GitHub仓库上报告问题、建议新功能或提交拉取请求。

作者 🔝

👤 GitHub: scrnr

许可证 🔝

此库在MIT许可证下发布。请查阅LICENSE文件以获取更多信息