shuraih/dbflex

一个简单且灵活的数据库对象库

v1.3.0 2024-08-11 21:22 UTC

This package is auto-updated.

Last update: 2024-09-11 21:43:02 UTC


README

DBFlex 是一个轻量级的 PHP 数据库抽象库,旨在通过 PDO 简化数据库操作。它提供了一种流畅的接口来执行常见的数据库操作,如选择、插入、更新、删除记录和处理事务。

要求

  • PHP 7.4 或更高版本
  • PDO 扩展已启用
  • MySQL 数据库
  • SQLITE3 数据库

安装

通过 Composer

通过 Composer 将 DBFlex 添加到您的项目中。在项目目录中运行以下命令

composer require shuraih/dbflex

手动安装

下载 DBFlex 库并将其包含到您的项目中

用法

初始化 DBFlex 类

require_once 'path/to/DBFlex.php';
// Initialize the DB class with  MYSQL database credentials
$db = new DBFlex('mysql', 'localhost', 'dbuser', 'dbpassword', 'test_db');


// Initialize the DB class with  SQLITE database credentials
$dbPath = 'sqlite.db';
$db = new DBFlex('sqlite', null, null, null, null, $dbPath);

插入数据

$data = ['name' => 'John Doe', 
'email' => 'john@example.com'];
$id = $db->table('users')->insert($data);
echo "Inserted ID: " . $id . "\n"; ###getting last inserted ID;

选择特定列

$db->table('users')->select('name')->where('id', $id);
$results = $db->get();
echo "Select Result:\n";
print_r($results);

选择所有列

$db->table('users');
$results = $db->get();
echo "Select Result:\n";
print_r($results);

使用等于运算符的 where 子句

$db->table('users')->select('name')->where('id', $id, '=');
$results = $db->get();
echo "Select Result:\n";
print_r($results);

使用小于运算符的 where 子句

$db->table('users')->select('name')->where('id', $id, '<');
$results = $db->get();
echo "Select Result:\n";
print_r($results);

使用大于运算符的 where 子句

$db->table('users')->select('name')->where('id', $id, '>');
$results = $db->get();
echo "Select Result:\n";
print_r($results);

使用默认的等于运算符的 where 子句

$db->table('users')->select('name')->where('id', $id);
$results = $db->get();
echo "Select Result:\n";
print_r($results);

更新数据

$data = ['name' => 'Jane Doe'];
$db->table('users')->where('id', $id)->update($data);
$db->table('users')->select('name')->where('id', $id);
$results = $db->get();
echo "Updated Result:\n";
print_r($results);

删除数据

$db->table('users')->where('id', $id)->delete();
$db->table('users')->select()->where('id', $id);
$results = $db->get();
echo "After Delete:\n";
print_r($results);

计数

$count = $db->table('users')->count();
echo "User Count: " . $count . "\n";

排序

$db->table('users')->select('name')->orderBy('name', 'DESC');
$results = $db->get();
echo "Ordered Results:\n";
print_r($results);

分页的 Limit

$db->table('users')->select('name')->limit(1);
$results = $db->get();
echo "Limited Results:\n";
print_r($results);

分页的 Offset

$db->table('users')->select('name')->offset(1)->limit(1);
$results = $db->get();
echo "Offset Results:\n";
print_r($results);

连接:内连接

$db->table('users')
    ->select('users.name, orders.id')
    ->join('orders', 'users.id', '=', 'orders.user_id');
$results = $db->get();
echo "Join Results:\n";
print_r($results);

左连接

echo " Left Join...\n";
$db->table('users')
    ->select('users.name', 'orders.product')
    ->leftJoin('orders', 'users.id', '=', 'orders.user_id');
$results = $db->get();
echo "Left Join Results:\n";
print_r($results);

右连接

echo " Right Join...\n";
$db->table('users')
    ->select('users.name', 'orders.product')
    ->rightJoin('orders', 'users.id', '=', 'orders.user_id');
$results = $db->get();
echo "Right Join Results:\n";
print_r($results);

获取第一条数据

$db->table('users')->where('status', 1)->first();
print_r($results);

原始查询

$db->raw('SELECT * FROM users WHERE email = ?', ['john@example.com']);
$results = $db->get();
echo "Raw Query Results:\n";
print_r($results);

分组

$db->table('orders')->select('COUNT(*) as count')->groupBy('status');
$results = $db->get();
echo "GroupBy Results:\n";
print_r($results);

搜索

$db->table('users')->select('name')->search(['name'], 'John');
$results = $db->get();
echo "Search Results:\n";
print_r($results);

事务

$db->startTransaction();
if($db->table('users')->insert($data))
{
    $db->commit();
} else {
    $db->rollback();
}

作者