godsgood33/php-db

PHP 数据库库

2.6.1 2021-01-30 00:42 UTC

This package is auto-updated.

Last update: 2024-09-29 05:08:08 UTC


README

Build Status Code Coverage

这是一个我一直构建的库,类似于WordPress数据库交互所用的WPDB类。我已经扩展了这个库,并添加了扩展的插入、替换和更新语法构建等功能。

完整文档

https://php-db.readthedocs.io/en/stable/

安装

  • `composer require godsgood33/php_db`

设置

  • 安装后,运行php vendor/godsgood33/php_db/bin/setup.php来创建所需的常量以放置所需的配置文件
    • PHP_DB_SERVER (你想要连接到的服务器的IP或主机名)
    • PHP_DB_USER (连接的用户名)
    • PHP_DB_PWD (用户密码)
    • PHP_DB_SCHEMA (默认连接的架构,如果需要查询其他表,可以使用{schema}.{table}语法)
    • PHP_DB_LOG_LEVEL (使用PSR/Logger级别,如果不存在,将默认为Logger::Error)
    • PHP_DB_CLI_LOG (布尔值,决定是否在命令行上显示日志,如果不存在,则不显示)
    • PHP_DB_ENCRYPT (布尔值,决定是否要加密密码)
    • PHP_DB_ENCRYPT_ALGORITHM (用于加密和解密密码的OpenSSL算法)
    • PHP_DB_ENCRYPT_SALT (加密密码时使用的盐)
    • PHP_DB_AUTORUN (布尔值,决定是否要自动提交SQL命令并返回查询的结果而不是查询本身,默认为FALSE)

如果您想加密配置文件中的密码,可以运行php vendor/godsgood33/php_db/bin/setup.php --algorithms来查看您当前安装了哪些加密算法。一旦您决定使用哪个,运行php vendor/godsgood33/php_db/bin/setup.php -a={选择的算法},它将加密密码。

在包含自动加载后,您可以创建一个对象,如下所示

$db = new Godsgood33\Php_Db\Database();

或者

$conn = new mysqli("server", "user", "pwd", "schema");
$db = new Godsgood33\Php_Db\Database($conn);

使用第二个选项允许您连接到任何非默认服务器,然而,如果连接因为任何原因断开,它将不会自动重新连接。

我们建议使用这个类来扩展您现有的数据库连接类。因为实例化会自动调用父类构造函数并使用默认值连接到数据库(只要您没有创建自己的类构造函数,在这种情况下添加parent::__construct())。然后,在您的DB类中,您可以构建执行所需查询的功能调用。

class MyDB extends Godsgood33\Php_Db\Database
{
    public function __construct()
    {
        parent::__construct();
    }

    public function getUsers()
    {
        $this->select("users");

        return $this->execute();
    }
}
$db = new MyDB();

如果您将PHP_DB_AUTORUN设置为true,上述方法可以写成以下形式

public function getUsers()
{
    return $this->select('users');
}

查询类型列表

  1. select
    • 构建选择查询
  2. selectCount
    • 构建选择count(1)查询
  3. insert
    • 构建一行插入查询
  4. extendedInsert
    • 构建多行插入查询
  5. update
    • 构建一行更新查询
  6. extendedUpdate
    • 构建多行更新查询(需要从表中拉取并更新)
  7. replace
    • 构建一行替换查询
  8. extendedReplace
    • 构建多行替换查询
  9. delete
    • 构建删除查询(允许连接和目标删除)
  10. drop
    • 构建删除查询(允许删除多个表)
  11. truncate
    • 构建截断查询
  12. createTable
    • 构建创建表查询(允许临时、DDL语法或从选择语句创建)
  13. createTableJson
    • 从JSON构建DDL创建表查询(examples/create_table_json.json)
  14. alterTable
    • 构建修改表查询(允许添加、修改和删除列语法)
  15. setVar
    • 设置服务器、系统或连接变量
  16. fieldExists
    • 查询表以检查特定字段的现有情况
  17. fieldData
    • 查询表以获取字段数据
  18. tableExists
    • 检查表是否存在
  19. fields
    • 构建字段列表的辅助方法
  20. parseClause
    • 构建WHERE和HAVING子句的辅助方法
  21. flags
    • 解析选项标志数组的辅助方法
  22. groups
    • 构建GROUP BY语法的辅助方法
  23. order
    • 构建ORDER BY语法的辅助方法
  24. isConstraint
    • 检查约束存在的辅助方法
  25. encrypt / decrypt
    • 解密和加密内容的辅助方法