amin.rz3/pdo-query-builder 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

amin.rz3/pdo-query-builder

Composer 安装命令:

composer require amin.rz3/pdo-query-builder

包简介

Mysql Orm Php

README 文档

README

Get Started

Install via composer

$ composer require amin.rz3/pdo-query-builder

Load PDO Query Builder

require 'vendor/autoload.php';

use App\Database\PDODatabaseConnection;
use App\Database\PDOQueryBuilder;
use App\Exceptions\ConfigValidException;
use App\Exceptions\DatabaseConnectionException;


$config = [
    'driver' => 'mysql',
    'host' => 'localhost',
    'database' => 'db_name',
    'db_user' => 'db_user',
    'db_password' => 'db_password',
];

try {
    $databaseConnection = new PDODatabaseConnection($config);
} catch (ConfigValidException $e) {
}

try {
    $pdoQueryBuilder = new PDOQueryBuilder($databaseConnection->connect());
} catch (DatabaseConnectionException $e) {
}

Select

//select all columns
$datas = $pdoQueryBuilder->table('users')->get();

//select two column
$datas = $pdoQueryBuilder->table('users')->get(['name','family']);

//select with where
$datas = $pdoQueryBuilder->table('users')->where(['instagram'=>'amin.rz3'])
         ->get(['name','family']);
         

Insert

$pdoQueryBuilder->table('users')->insert([
    'name'=>'Amin',
    'Family'=>'Rahimzadeh',
    'Instagram'=>'amin.rz3',
    'Job'=>'Android,PHP Developer',
]);

Update

//update all columns
$response = $this->pdoQueryBuilder->table('users')
            ->update(['name' => 'Amin', 'Family' => 'Rahimzadeh']);

//update with where
$response = $this->pdoQueryBuilder->table('users')
            ->where(['name' => 'A', 'Family' => 'R'])
            ->update(['name' => 'Amin', 'Family' => 'Rahimzadeh']);
            
//if update success $response = 1
//if update failed $response = 0

Delete

$response = $this->pdoQueryBuilder->table('users')
            ->where(['name' => 'Amin', 'Family' => 'Rahimzadeh'])
            ->delete();
            
//if delete success $response = 1
//if delete failed $response = 0

Where Syntax

Basic

// WHERE name = 'Amin'
$datas = $pdoQueryBuilder->table('users')
         ->where(['name'=>'Amin'])
         ->get();

// WHERE id > 50
$datas = $pdoQueryBuilder->table('users')
         ->where(['id[>]'=>50])
         ->get();
         
// WHERE id >= 50
$datas = $pdoQueryBuilder->table('users')
         ->where(['id[>=]'=>50])
         ->get();
         
// WHERE id < 50
$datas = $pdoQueryBuilder->table('users')
         ->where(['id[<]'=>50])
         ->get();
         
// WHERE id <= 50
$datas = $pdoQueryBuilder->table('users')
         ->where(['id[<=]'=>50])
         ->get();
         
// WHERE id != 50
$datas = $pdoQueryBuilder->table('users')
         ->where(['id[!]'=>50])
         ->get();

AND-OR

$datas = $pdoQueryBuilder->table('users')
         ->where([
            'OR'=>[
                 'name[!]'=>'Amin',
                 'Family[!]'=>'Rahimzadeh'
            ]])
         ->get();
// Where name!='Amin' OR Family!='Rahimzadeh'

$datas = $pdoQueryBuilder->table('users')
         ->where([
             'OR'=>[
                'name[!]'=>'Amin','
             AND'=>[
                'Family[!]'=>'Rahimzadeh',
                'instagram'=>'amin.rz3'
                ]
             ]
         ])
         ->get();

// Where name!='Amin' OR (Family!='Rahimzadeh' AND instagram=amin.rz3)

Like

$datas = $pdoQueryBuilder->table('users')
         ->where([
            'name[~]'=>'A'
         ])
         ->get();
// Where name LIKE '%A%'

$datas = $pdoQueryBuilder->table('users')
         ->where([
            'name[~]'=>[
                'OR'=>[
                    'A','AM'
                 ]
           ]
         ])
         ->get();
// Where name LIKE '%A%' OR LIKE '%AM%'

ORDER

$data = $pdoQueryBuilder->table('users')
        ->where([
            'name=>'Amin',
            'ORDER'=>[
                'id'=>'DESC'
             ]
        ])
        ->get();
        
// Where name name='Amin' ORDER BY id DESC

$data = $pdoQueryBuilder->table('users')
        ->where([
            'ORDER'=>[
                'id'=>[1,2,3,4,5]
             ]
        ])
        ->get();
        
// ORDER BY FIELD(id,1,2,3,4);

LIMIT and OFFSET

$data = $pdoQueryBuilder->table('users')
        ->where([
            'ORDER'=>[
                'id'=>[1,2,3,4,5]
             ]
        ])
        ->get();

GROUP

$data = $pdoQueryBuilder->table('users')
        ->where([
            //Get the First 50 Of rows
            'LIMIT'=>50,
            
            //Started from the top 10 rows, and the get next 50
            'LIMIT'=>[10,50],
        ])
        ->get();

统计信息

  • 总下载量: 13
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-02-16

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固