krubio/perfect-database

符合SOLID原则的数据库连接

v0.1.0 2023-04-25 04:38 UTC

This package is auto-updated.

Last update: 2024-10-01 00:11:07 UTC


README

codecov Build

Coverage Maintainability Rating Code Smells Technical Debt Quality Gate Status Reliability Rating Duplicated Lines (%) Vulnerabilities Bugs Security Rating

简介

这些数据库连接类旨在与SQLite、MSSQL、Postgres、MongoDB和MySQL数据库建立连接。这些类通过PHP数据对象(PDO)扩展提供了一种通用的接口,用于连接不同的数据库。本最终用户文档和用法说明将帮助您在PHP项目中配置和使用SQLiteConnection和MysqlConnection类。

安装

您可以使用Composer安装此包。在项目目录中运行以下命令

composer require krubio/perfect-database

这将下载包及其依赖项,并将包添加到您的composer.json文件中。

用法

安装包后,您可以通过将它们导入到代码中并创建其实例来使用SqliteConnection和MysqlConnection类。以下是一个示例

<?php

require_once 'vendor/autoload.php';

use PerfectApp\Database\SqliteConnection;
use PerfectApp\Database\MysqlConnection;

    // SQLite configuration
$config = [
    'path' => 'path/to/database/file',
    'options' => [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    ],
];

// Create a SQLite connection
$sqliteConnection = new SqliteConnection();
$pdo = $sqliteConnection->connect($config);

// MySQL configuration
$config = [
    'host' => 'localhost',
    'port' => 3306,
    'dbname' => 'my_database',
    'charset' => 'utf8mb4',
    'username' => 'my_username',
    'password' => 'my_password',
    'options' => [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    ],
];

// Create a MySQL connection
$mysqlConnection = new MysqlConnection();
$pdo = $mysqlConnection->connect($config);

请注意,需要vendor/autoload.php文件来使用Composer的自动加载功能加载包中的类。如果您不使用Composer,则需要手动包含您想要使用的类的文件。

就是这样!现在您可以使用connect方法返回的PDO对象与数据库进行交互。

示例

$stmt = $pdo->prepare("SELECT * FROM users WHERE id=:id");
$stmt->bindValue(':id', 1, PDO::PARAM_INT);
$stmt->execute();
$user = $stmt->fetch(PDO::FETCH_ASSOC);

配置

要使用这些类与数据库建立连接,您需要提供一个包含所需参数的配置数组。配置数组必须包含以下键

对于SqliteConnection

  • 'path': SQLite数据库文件的路径。
  • 'options': PDO选项数组。(可选)

对于MysqlConnection

  • 'host': MySQL服务器的主机名或IP地址。
  • 'port': MySQL服务器端口号。
  • 'dbname': MySQL数据库名。
  • 'charset': 用于连接的字符集。
  • 'username': MySQL用户名。
  • 'password': MySQL密码。
  • 'options': PDO选项数组。(可选)

注意:配置数组必须包含所有必需的键。否则,将抛出InvalidArgumentException异常。