croak-dbmanagement/dbmanagement

一套用于使用 PDO 简单操作数据库的 PHP 对象和接口

1.02 2017-10-13 10:08 UTC

This package is not auto-updated.

Last update: 2024-09-29 03:10:21 UTC


README

用于使用 pdo 管理通用数据库的 php 类

使用 DbManagement,您只需实现 DbManagement 接口,扩展 DbManagementObject,并定义数据库类型的查询,然后构建表或查询就变得非常简单。

通过 composer 使用 DbManagement:composer require croak-dbmanagement/dbmanagement

DbManagement 接口必须实现以处理不同类型的数据库和不同的语法。该软件包 https://github.com/20centcroak/SqliteDbManagement 为处理 sqlite 提供了实现。如果您使用 sqlite,请使用此软件包,该软件包调用 DbManagement 软件包

composer require croak-sqlite-dbmanagement/sqlite-dbmanagement

DbManamgementObject 需要表字段定义。这是通过在扩展 DbManagementObject 的类中创建 4 个常量数组来完成的

  • KEYS[key=>value] 定义表的字段名。字段名是数组的所有值。值是字符串。
  • KEY_TYPES[key=>type] 通过与 KEYS 数组相同的键定义与字段名关联的字段类型。它可以是 PHP 用于测试变量类型(is_string、is_numeric、is_int、is_float 等)的函数之一,因此它不依赖于数据库语法。类型是字符串。
  • KEY_REQUIRED[key=>required] 定义在数据库中添加记录时必须的字段。与 KEYS 数组相同的键关联“required”值。必需的是布尔值。
  • KEY_UNIQUE[key=>unique] 定义在数据库中添加记录时必须唯一字段。与 KEYS 数组相同的键关联“unique”值。唯一的是布尔值。

DbManamgementObject 的抽象设置方法应填充以返回这些常量

以下是一个示例

` use Croak\DbManagement\Exceptions\IotException;

use Croak\DbManagement\DbManagementObject;

class Measure extends DbManagementObject{

const KEYS = array(
    "type"=>"type",
    "unit"=>"unit",
    "value"=>"value",
    "flag"=>"flag",
    "deviceSn"=>"id_device",
    "date"=>"created"
);

const KEY_TYPES = array(
    "type"=>"is_string",
    "unit"=>"is_string",
    "value"=>"is_float",
    "flag"=>"is_string",
    "deviceSn"=>"is_string",
    "date"=>"is_string"
);

const KEY_REQUIRED = array(
    "type"=>true,
    "unit"=>true,
    "value"=>true,
    "flag"=>false,
    "deviceSn"=>true,
    "date"=>true
);

 const KEY_UNIQUE = array(
    "type"=>false,
    "unit"=>false,
    "value"=>false,
    "flag"=>false,
    "deviceSn"=>false,
    "date"=>false
);

public function getKeys(){
    return constant("self::KEYS");
}

public function getTypes(){
    return constant("self::KEY_TYPES");
}

public function getRequiredKeys(){
    return constant("self::KEY_REQUIRED");
}

public function getUniqueKeys(){
    return constant("self::KEY_UNIQUE");
}

} `

就这么简单!

对于使用 GET 请求的查询,请使用以下关键字

  • [fieldName]-up 按升序排序 [fieldName] 字段的数据
  • [fieldName]-down 按降序排序 [fieldName] 字段的数据
  • [fieldName]-min=XXX 选择 [fieldName]>=XXX 的数据
  • [fieldName]-max=XXX 选择 [fieldName]<=XXX 的数据
  • [fieldName]=XXX 选择 [fieldName]=XXX 的数据

假设您在应用程序中定义了 localhost:8080/measures 路由,并且数据库表中定义了名为 "value" 和 "flag" 的字段,以下是一个 GET 请求的示例

localhost:8080/measures?value-min=12&value-up&flag-down