类似Laravel数据库的数据库类

1.0.1 2023-10-09 07:07 UTC

This package is not auto-updated.

Last update: 2024-09-24 10:18:04 UTC


README

Hasirciogli\Hdb\Database 类的 README.md

简介

此README文件提供了对Hasirciogli\Hdb\Database类的概述,这是一个PHP类,旨在简化数据库交互,提供与Laravel数据库层类似的结构。

特性

  • 连接管理:基于通过接口(DatabaseConfigInterface)提供的配置建立到MySQL数据库的PDO连接。
  • 查询构建:通过链式方法方式促进SQL查询的构建。
  • 预处理语句:使用预处理语句防止SQL注入漏洞。
  • 数据绑定:允许将参数绑定到查询,以处理动态数据。
  • 执行和检索:执行构建的查询,并以关联数组或单行形式检索结果。

安装

1. Composer(推荐)

如果您在项目中使用Composer,请将包添加到您的composer.json文件中

"require": {
    "hasirciogli/hdb": "^1.0" // Replace with the specific version you want
}

然后,运行composer install以下载包。

2. 手动下载

下载Hasirciogli\Hdb目录并将其包含在项目的文件结构中。

用法

1. 配置

创建一个实现DatabaseConfigInterface的类。此接口定义了数据库凭证和连接详细信息的属性

interface DatabaseConfigInterface
{
    const DB_HOST = 'localhost';
    const DB_NAME = 'your_database_name';
    const DB_USER = 'your_username';
    const DB_PASS = 'your_password';
}

2. 数据库连接

实例化Database类,传递配置类的实例

use Hasirciogli\Hdb\Database;
use MyProject\DatabaseConfig; // Replace with your config class path

$db = Database::cfun(new DatabaseConfig());

3. 构建查询

使用链式方法构建您的SQL查询

$users = $db->Select('users')
            ->Where('isActive', true)
            ->OrderBy('username', 'ASC')
            ->Get('all'); // Get all results as an array

预处理语句和数据绑定

该类自动使用预处理语句和数据绑定。您不需要手动转义值

$userId = 123;
$user = $db->Select('users')
            ->Where('id', $userId)
            ->Get(); // Get a single user row

5. 其他方法

  • Use(string $DbName):选择连接中的特定数据库。
  • LastInsertId():在INSERT操作后检索最后插入的ID。
  • Insert(string $TableName, $Dataset):使用指定的表名和数据构建INSERT查询。
  • CustomSql(string $Sql):允许执行原始SQL查询。

错误处理

CheckDB()方法在无法建立数据库连接时抛出异常。请在您的代码中处理此异常以提供适当的错误消息。

安全注意事项

虽然Database类使用了预处理语句,但仍建议在使用查询之前验证用户输入,以防止潜在的安全问题。

贡献

我们欢迎对改进此库的贡献!在GitHub上fork存储库并提交您的改进的pull请求。

许可

此库根据MIT许可证许可。