exigen/dbsupport

提供了一种快速便捷的机制来构建数据库模型类。使用简单但功能强大且可扩展。

v1.0.1 2020-06-27 13:41 UTC

This package is auto-updated.

Last update: 2024-09-25 20:21:06 UTC


README

此包的目的是提供一个快速、便捷的机制来访问MySQL数据库,足够健壮,可以在大型项目中使用。

主要有两个类,一个是DB记录类,用于表示数据库表记录。
还有一个SQL查询构建类,用于帮助检索DB记录项的列表。

DB记录类:用于表示Db表记录。表定义在构造函数内。

 class ExampleClass extends exigen\DbSupport\DbRecord
 {
     public function __construct()
     {
          $fieldList = array(
               'customer_name' => array('type'=>DbAccess::DB_TYPE_NUMERIC, 'db_type'=>'int'),
               'invoice_id' => array('type'=>DbAccess::DB_TYPE_STRING, 'db_type'=>'VARCHAR(128)'),
               ...
           );
     
     parent::__construct("the_table_name", 'the_table_id', $fieldList);
     }
}

以下静态方法可用

  • ExampleClass::lookUpInDatabase($id); // 如果在数据库中找到匹配的Id值,则返回Example类的实例,否则返回null。
  • ExampleClass::createFromDatabase($id); // 如果在数据库中找到匹配的Id值,则返回Example类的实例,否则返回新实例。

Db记录的任何实例都可用以下方法

  • $instance->save(); // 将记录保存到数据库。
  • $instance->delete(); // 从数据库中删除记录。
  • $instance->dbUpdate(); // 在数据库中更新/创建表。
  • $instance->id()

对于上面的示例,以下方法会根据所选访问选项自动可用

  • $instance->getId()
  • $instance->getCustomerName();
  • $instance->setCustomerName($name);
  • $instance->getInvoiceId();
  • $instance->setInvoiceId($id); 或者
  • $instance->customerName();
  • $instance->customerName($name);
  • $instance->invoiceId();
  • $instance->invoiceId($id);

用法:两步:1. 配置数据库连接详情,只需配置一次。2. 创建一个从DbRecord派生的类,并在构造函数内定义表。