klintlili/easier-databases

Base 是一个简单的库,使 PHP 中与 MySQL 数据库的交互变得更容易。

1.0.0 2020-07-30 06:06 UTC

This package is auto-updated.

Last update: 2024-09-29 05:36:28 UTC


README

Base 是一个简单的库,使 PHP 中与 MySQL 数据库的交互变得更容易。

特性

  • 简单 [简单]
  • 直观 [直观]
  • 独立 [独立]
  • 安全 [安全]
  • 基于 PDO

安装

包含 Base.phpCollection.php 或安装 composer 包。请参阅文档中的 index.php 例子中的详细说明。

例子

连接到数据库

# the constructor takes the same parameters as the PDO constructor
$Base = new \klintlili\base\Base('mysql:host=localhost;dbname=example', 'username', 'password');

处理记录

# read user 1
$Base->readItem('user', 1);
# update the username of user 1
$Base->updateItem('user', 1, ['username' => 'john.doe']);
# create a user
$Base->createItem('user', ['username' => 'jane.doe', 'email' => 'jane@example.com']);
# delete user 1
$Base->deleteItem('user', 1);

处理集合

# read all users
$Base->find('user')->read();
# read the users that are marked as verified in a desc order
$Base->find('user')->whereEqual('is_verified', 1)->orderDesc('id')->read();
# read the user with the most reputation
$Base->find('user')->limit(1)->orderDesc('reputation')->readRecord();
# mark users 1 and 3 as verified
$Base->find('user')->whereIn('id', [1, 3])->update(['is_verified' => 1]);
# count the users that don't have a location
$Base->find('user')->whereNull('location')->count();
# plain sql conditions are also supported
$Base->find('user')->where('is_verified = ?', [1])->read();

处理关系

# read the users that have a featured post
$Base->find('user')->has('post')->whereEqual('post.is_featured', 1)->read();
# read the posts of user 1
$Base->find('post')->belongsTo('user')->whereEqual('user.id', 1)->read();
# read the posts that are tagged "php"
$Base->find('post')->hasAndBelongsTo('tag')->whereEqual('tag.name', 'php')->read();
# unconventional FK names are also supported
$Base->find('user')->has('post', 'author_id')->whereEqual('user.id', 1)->read();

执行查询

# read all users
$Base->read('SELECT * FROM user');
# read user 1
$Base->readRecord('SELECT * FROM user WHERE id = ?', [1]);
# read the username of user 1
$Base->readField('SELECT username FROM user WHERE id = ?', [1]);
# read all usernames
$Base->readFields('SELECT username FROM user');
# update all users
$Base->update('UPDATE INTO user SET is_verified = ?', [1]);