brainstormit / bitbuilder
易于阅读的querybuilder,学习曲线短!
Requires
- php: >=5.0.0
Requires (Dev)
- php: >=5.0.0
This package is not auto-updated.
Last update: 2024-09-29 00:48:17 UTC
README
关于 BITbuilder
BITbuilder 是由 Brainstorm IT 的软件开发实习生创建的 MySQL 查询构建器,使用 PHP 数据对象扩展 (PDO) 访问数据库。此查询构建器设计得尽可能简单,几乎没有学习曲线。Laravels 查询构建器是 BITbuilder 语法外观的灵感来源,因此在语法上可以进行一些比较。
要求
- PHP 5.6+
- composer
安装
您可以通过 composer 安装 BITbuilder
composer require 'brainstormit/bitbuilder'
开始吧!
首要之事!我们需要一个 PDO 数据库 对象,以便 BITbuilder 可以工作。
数据库辅助类可以轻松创建一个(您不一定需要使用此辅助类)。
导航到 src/helpers/Database.php
并编辑您的数据库配置
$this->db_type = 'mysql'; $this->db_host = 'localhost'; $this->db_name = 'qbtest'; $this->db_username = 'root'; $this->db_password = '';
数据库配置全部设置好后,我们可以创建数据库对象,更重要的是:我们的第一个 BITbuilder 对象!
$db = new Database(); // BITbuilder object $b = new Builder($db);
选择您的表
在我们开始有趣的事情之前,我们需要选择
我们想要操作的表。
假设我们想要选择 users
表
$tbl = $b->table('users');
SELECT 语句
如果您想选择 users
表中的所有用户,我们可以执行以下操作
SELECT *
$record = $tbl->select('*')->fetchAll();
也可以提供一个包含您想要选择的所有字段的数组
$fields = array('first_name', 'last_name', 'email'); $record = $tbl->select($fields)->fetchAll();
WHERE 子句
您可以使用以下方法在语句中添加 WHERE 子句
$record = $tbl->select(['first_name', 'email']) ->where('id', 89) ->fetchAll();
第二个参数可以提供一个不同的运算符。
第三个参数然后成为值
$record = $tbl->select(['first_name', 'email']) ->where('id', '<=', 51) ->fetch();
有效运算符: = != < > >= <=
AND & OR 运算符
OR
& AND
运算符可以添加到您的子句中,如下所示
// AND operator $record = $tbl->select(['first_name', 'email']) ->where('id', 23) ->and_('email', '!=', 'johndoe@example.com') ->fetchAll(); // OR operator $record = $tbl->select(['first_name', 'email']) ->where('id', 69) ->or_('last_name', '=', 'Smith') ->fetchAll();
and_
和 or_
在它们的方法名后有一个下划线,因为 PHP 不允许使用 PHP 保留名称
作为方法名称。
ORDER BY 关键字
可以使用以下方法对选定的记录进行排序
$record = $tbl->select('*') ->orderBy('id') ->fetchAll();
默认排序方式是 升序。这可以通过添加 DESC
作为第二个参数来轻松更改
->orderBy('id', 'DESC')
GROUP BY 关键字
可以使用以下方法对选定的记录进行分组
$record = $tbl->select('*') ->GroupBy('email') ->fetchAll();
LIMIT 关键字
可以通过添加 LIMIT
到您的查询中来限制记录中的项目数量
$record = $tbl->select('*') ->limit(5) ->fetchAl();
INSERT 语句
将新记录插入 users
表看起来可能如下所示
$insert = [ 'first_name' => 'John', 'last_name' => 'Doe', 'email' => 'johndoe@example.com' ]; $tbl->insert($insert);
包含您的插入信息的数组必须是 关联数组。
数组键表示表字段,数组值表示
您想要插入到表中的值。
DELETE 语句
从 users
表中删除记录可能如下所示
$tbl->delete('id', 44);
第二个和第三个参数表示 WHERE
子句。
WHERE 子句也可以手动添加
$tbl->delete() ->where('id', 44) ->exec()
需要使用 exec()
方法手动执行查询。
UPDATE 语句
更新 users
表中的记录可能如下所示
$update = array('first_name' => 'Crazy', 'last_name' => 'Frog'); $tbl->update($update, 'id', 59);
包含您更新信息的数组必须是关联数组
,就像insert()
方法一样。
数组键代表您想更新的表字段,而数组值代表
值。
就像delete()
方法一样,如果您想的话,可以手动添加一个WHERE
子句
$update = array('first_name' => 'Crazy', 'last_name' => 'Frog'); $tbl->update($update) ->where('id', 59) ->exec();
连接
假设我们想要开发一个平台,用户可以在其中发布图片。
如果您想选择属于某个特定用户的所有图片,您的连接看起来可能像这样
// pictures table $tbl = $b->table('pictures AS p'); $join = $tbl->select('*') ->join('users AS u', 'p.userid', 'u.id') ->fetchAll();
您想连接的表应该作为第一个参数传递。
第二个和第三个参数代表连接的ON
部分
支持的连接方式:INNER JOIN (join()),LEFT JOIN (leftJoin()),RIGHT JOIN (rightJoin()),OUTER JOIN (outerJoin())
执行原始查询
也可以执行原始查询
$tbl->raw('SELECT COUNT(*) FROM users')->fetchAll();
或
$tbl->raw('DELETE FROM users WHERE id = 77')->exec();
许可证
BITbuilder是开源软件,使用MIT许可证授权。