godsgood33 / php-db
PHP 数据库库
2.6.1
2021-01-30 00:42 UTC
Requires
- ext-mysqli: *
- ext-openssl: *
- monolog/monolog: ^2.0
Requires (Dev)
- phpunit/phpunit: ^9.4
README
这是一个我一直构建的库,类似于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');
}
查询类型列表
- select
- 构建选择查询
- selectCount
- 构建选择count(1)查询
- insert
- 构建一行插入查询
- extendedInsert
- 构建多行插入查询
- update
- 构建一行更新查询
- extendedUpdate
- 构建多行更新查询(需要从表中拉取并更新)
- replace
- 构建一行替换查询
- extendedReplace
- 构建多行替换查询
- delete
- 构建删除查询(允许连接和目标删除)
- drop
- 构建删除查询(允许删除多个表)
- truncate
- 构建截断查询
- createTable
- 构建创建表查询(允许临时、DDL语法或从选择语句创建)
- createTableJson
- 从JSON构建DDL创建表查询(examples/create_table_json.json)
- alterTable
- 构建修改表查询(允许添加、修改和删除列语法)
- setVar
- 设置服务器、系统或连接变量
- fieldExists
- 查询表以检查特定字段的现有情况
- fieldData
- 查询表以获取字段数据
- tableExists
- 检查表是否存在
- fields
- 构建字段列表的辅助方法
- parseClause
- 构建WHERE和HAVING子句的辅助方法
- flags
- 解析选项标志数组的辅助方法
- groups
- 构建GROUP BY语法的辅助方法
- order
- 构建ORDER BY语法的辅助方法
- isConstraint
- 检查约束存在的辅助方法
- encrypt / decrypt
- 解密和加密内容的辅助方法