数据库操作层

v3.0.3 2024-07-23 07:46 UTC

README

描述

使用 Doctrine/dbal 进行 CRUD 操作的库。

支持(已测试)RDBMS

  • sqlite 3.8
  • MySQL 8.0
  • PostgreSQL 15
  • SQLServer 2017

文档位于以下位置。

安装

{
    "require": {
        "ryunosuke/dbml": "dev-master"
    }
}

使用

$db = new \ryunosuke\dbml\Database([
    'driver'   => 'pdo_mysql',
    'host'     => '127.0.0.1',
    'port'     => '3306',
    'dbname'   => 'dbname',
    'user'     => 'user',
    'password' => 'password',
    'charset'  => 'utf8',
], [
    /* オプション配列 */
]);

简而言之,将配置信息(传递给 \Doctrine\DBAL\DriverManager 的数组)作为构造函数的参数。原则上只使用此数据库实例,直接使用其他类。如上所述,创建$db实例后,然后使用此$db进行数据库访问。

通常使用查询构建器或网关。以下是一些基本的 CRUD 代码。

// t_article のレコードを全件取得
$db->selectArray('t_article'); // クエリビルダ版
$db->t_article->array();       // ゲートウェイ版

// t_article にレコードを追加する
$db->insert('t_article', [
    'article_title' => 'title',
    'content'       => 'content',
]);
$db->t_article->insert([
    'article_title' => 'title',
    'content'       => 'content',
]);

// t_article のレコードを更新する
$db->update('t_article', [
    'article_title' => 'title2',
    'content'       => 'content2',
], [
    'article_id' => 1,
]);
$db->t_article->update([
    'article_title' => 'title2',
    'content'       => 'content2',
], [
    'article_id' => 1,
]);

// t_article のレコードを削除する
$db->delete('t_article', [
    'article_id' => 1,
]);
$db->t_article->delete([
    'article_id' => 1,
]);

实际上可以进行 JOIN 操作或以分层方式获取下级表,WHERE 条件中可以嵌入条件等,但具体的用法请参考类参考

许可证

MIT