iamjohndev/ijd-orm

一个简单轻量级的PHP ORM(对象关系映射)用于MySQLi

1.1.4.7 2023-06-09 01:38 UTC

This package is auto-updated.

Last update: 2024-09-15 08:26:04 UTC


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文件。