piko / db-record
基于 PDO 构建的轻量级 Active Record 辅助工具。
v2.0.2
2023-10-18 16:20 UTC
Requires
- php: >=7.1.0
- piko/core: ^2.2
Requires (Dev)
- phpstan/phpstan: ^1.8
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.5
README
基于 PDO 构建的轻量级 Active Record 实现。
安装
建议使用 Composer 安装 Piko Db。
composer require piko/db-record
使用方法
require 'vendor/autoload.php'; use Piko\DbRecord; class Contact extends DbRecord { protected $tableName = 'contact'; protected $schema = [ 'id' => self::TYPE_INT, 'name' => self::TYPE_STRING, 'order' => self::TYPE_INT ]; } // See https://php.ac.cn/manual/en/class.pdo.php $db = new PDO('sqlite::memory:'); $query = <<<EOL CREATE TABLE contact ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, `order` INTEGER ) EOL; $db->exec($query); $contact = new Contact($db); $contact->name = 'John'; $contact->order = 1; $contact->save(); var_dump($contact->id); // 1 $st = $db->prepare('SELECT * FROM contact'); $st->execute(); $rows = $st->fetchAll(PDO::FETCH_CLASS, Contact::class, [$db]); print_r($rows); // Array ([0] => Contact Object(...)) $contact = (new Contact($db))->load(1); var_dump($contact->name); // John $contact->delete(); print_r($st->fetchAll()); // Array()