carry0987/sanite

一个使用PDO提供的基CRUD结构和方法的PHP库。

1.3.7 2024-06-26 15:56 UTC

This package is auto-updated.

Last update: 2024-09-26 16:43:11 UTC


README

Packgist CI
Sanite是一个PHP库,它提供了一个基于PDO的基CRUD结构和方法。

入门指南

请确保已经安装了Sanite。如果没有安装,可以使用以下命令进行安装:

composer require carry0987/sanite

安装完成后,您可以将Sanite包含到您的项目中并开始使用。

建立数据库连接

使用Sanite建立数据库连接

use carry0987\Sanite\Sanite;

// Database connection settings
$config = array(
    'host' => 'mariadb',
    'database' => 'dev_sanite',
    'username' => 'test_user',
    'password' => 'test1234',
    'port' => 3306, // Optional
    'charset' => 'utf8mb4' // Optional
);

// Create a database connection
$sanite = new Sanite($config);

使用数据模型

创建自己的数据模型以执行CRUD操作。以下是一个使用UserModel检索用户数据的示例。

首先,确保您的模型扩展了DataReadModel(或相应的DataCreateModelDataDeleteModelDataUpdateModel

namespace carry0987\Sanite\Example;

use carry0987\Sanite\Models\DataReadModel;

class UserModel extends DataReadModel
{
    // Implement your methods, for example:
    public function getUserById(int $userId)
    {
        $queryArray = [
            'query' => 'SELECT * FROM user WHERE uid = ? LIMIT 1',
            'bind'  => 'i',  // This value needs to be relative when using DBUtil::getPDOType
        ];
        $dataArray = [$userId];

        return $this->getSingleData($queryArray, $dataArray);
    }

    public function getAllUsers()
    {
        $queryArray = [
            'query' => 'SELECT * FROM user'
        ];

        return $this->getMultipleData($queryArray);
    }
}

然后,您可以使用您的模型如下所示

use carry0987\Sanite\Example\UserModel;

// Instantiate UserModel
$userModel = new UserModel($sanite);

// Retrieve user information for user with ID 1
$user = $userModel->getUserById(1);
$users = $userModel->getAllUsers();

print_r($user);
print_r($users);

异常处理

Sanite定义了一个特定的异常类DatabaseException。请在您的代码中捕获并适当处理它。

try {
    // ... attempt some database operations ...
} catch (\carry0987\Sanite\Exceptions\DatabaseException $e) {
    // ... handle database exception ...
    echo "Error: " . $e->getMessage();
}