amin.rz3 / pdo-query-builder
Mysql Orm Php
Installs: 8
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Type:framework
Requires
- php: >=7.4
- ext-pdo: *
Requires (Dev)
- phpunit/phpunit: ^9
Suggests
- ext-pdo_mysql: For MySQL or MariaDB database
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();