iamjohndev / ijd-orm
一个简单轻量级的PHP ORM(对象关系映射)用于MySQLi
Requires
- php: ^8.0
- ext-mysqli: *
README
IJDORM 是一个轻量级且易于使用的PHP ORM(对象关系映射)库,它提供了一个方便的方式来与您的MySQL数据库进行交互。使用 IJDORM,您可以在不编写复杂的SQL查询的情况下执行数据库中的常见 CRUD(创建、读取、更新、删除)操作。
特性
- 执行自定义查询
- 从表中检索所有行
- 从表中检索第一行
- 从表中检索最后一行
- 从表中选择特定的列
- 根据条件过滤行
- 向表中插入新行
- 更新表中现有的行
- 从表中删除行
- 根据指定的条件连接表
要求
- PHP 8.0 或更高版本
- MySQL数据库
安装
IJDORM 可以通过Composer(PHP的依赖管理工具)安装。在您的项目目录中运行以下命令以将IJDORM作为依赖项添加
composer require iamjohndev/ijd-orm
安装后,您可以在PHP脚本中包含Composer自动加载器来自动加载IJDORM类
require_once 'vendor/autoload.php';
用法
创建实例
要开始使用IJDORM,通过提供表名和数据库连接对象(mysqli的实例)来创建IJDORM类的实例
use iamjohndev\IJDORM; // Create a database connection $connection = new mysqli('localhost', 'username', 'password', 'database'); // Create an instance of IJDORM $dorm = new IJDORM($connection, 'users');
检索数据
查找记录 要通过其ID从数据库中检索单个记录,请使用find方法
$user = $dorm->find(1);
这将返回一个表示检索到的记录的对象。
检索所有记录
要检索表中的所有记录,请使用 all() 方法
$users = $dorm->all();
这将返回一个关联数组的数组,其中每个数组表示一个记录。
自定义查询
如果您需要执行自定义查询,可以使用 get() 方法
$query = "SELECT * FROM users WHERE age > ?"; $users = $dorm->get($query, [18]);
这将返回一个关联数组的数组,其中每个数组表示一个与查询匹配的记录。
创建记录
要创建数据库中的新记录,请使用 create() 方法
$data = [ 'name' => 'John Doe', 'email' => 'john@example.com', ]; $result = $dorm->create($data); if ($result['success']) { echo 'Record created successfully'; } else { echo 'Failed to create record: ' . $result['errors']; }
使用规则创建记录
要创建数据库中的新记录,请使用 create() 方法
$rules = [ 'author_name' => 'required|min:3|max:255|unique:authors,author_name', ]; $createAuthor = $orm->create([ 'author_name' => $request->author_name, ], $rules); if ($createAuthor['success']) { echo "Author created successfully"; } else { foreach ($createAuthor['errors'] as $field => $errors) { foreach ($errors as $error) { $_SESSION['errors'][$field][] = $error; } } }
create方法接受一个表示要插入的数据的关联数组。您还可以提供验证规则在插入之前验证数据。
更新记录
要更新数据库中的现有记录,请使用 update() 方法
$id = 1; $data = [ 'name' => 'Jane Doe', 'email' => 'jane@example.com', ]; <!-- or --> $id = 1; $data = array( 'name' => 'Jane Doe', 'email' => 'jane@example.com', ); $result = $dorm->update($id, $data); if ($result['success']) { echo 'Record updated successfully'; } else { echo 'Failed to update record: ' . $result['errors']; }
update方法接受要更新的记录的ID和一个表示更新数据的关联数组。像create方法一样,您可以在更新之前提供验证规则来验证数据。
删除记录
要删除数据库中的记录,请使用 delete() 方法
$id = 1; $result = $dorm->delete($id); if ($result['success']) { echo 'Record deleted successfully'; } else { echo 'Failed to delete record: ' . $result['errors']; }
delete方法接受要删除的记录的ID。
链式方法
您可以将多个方法链在一起来构建复杂的查询
$users = $dorm->where('age', '>', 18) ->orderBy('name', 'asc') ->limit(10) ->get(); foreach ($users as $user) { echo $user['name'] . ' - ' . $user['email'] . '<br>'; }
在这个例子中,我们使用方法链来构建查询。我们首先使用 where 方法指定一个条件(年龄 > 18)。然后,我们使用 orderBy 方法按名称升序排序结果。接下来,我们使用limit方法限制要检索的记录数(在本例中为10)。最后,我们调用 get 方法来执行查询并检索结果。
然后通过foreach循环遍历检索到的记录,并输出每个用户的名字和电子邮件。
贡献
欢迎对IJDORM做出贡献!如果您发现任何问题或对改进有建议,请创建一个issue或在此GitHub仓库提交pull request。
许可证
IJDORM 是在MIT许可证下许可的开源软件。有关更多信息,请参阅LICENSE文件。