Дождусь инфы от volter9 и сделаю еще один подход к снаряду порефакторив классы немного. В плане стоит через 2 недели вернуться к этому блоку, но подумаю про изменение своего плана.
_____________
Трус не играет в хокей
<?php
namespace Database;
/**
* Description of PDO
* @author stump
*/
trait PDO
{
private $pdo;
private $statement;
private $DB_HOST = '127.0.0.1';
private $DB_NAME = 'mydb';
private $DB_USER = 'root';
private $DB_PW = '1111';
public function __get( $name )
{
echo $name;
return $this -> $name;
}
public function connect()
{
$this -> pdo = new \PDO(
"mysql:host=" . $this -> DB_HOST . " ;dbname=" . $this -> DB_NAME . ";",
$this -> DB_USER,
$this -> DB_PW
);
$this -> pdo;
}
public function prepare( $sql )
{
return ( TRUE == ( $this -> statement = $this -> pdo -> prepare( $sql ) ) );
}
public function execute( $param )
{
return ( TRUE == $this -> statement -> execute( $param ) );
}
public function fetch()
{
return $this -> statement -> fetchAll( \PDO::FETCH_CLASS );
}
}
<?php
namespace Database;
use Database\QueryBuilder,
Database\PDO;
/**
* Description of User
* @author stump
*/
class Database
{
use PDO
{
prepare as pdo_prepare;
execute as pdo_execute;
}
public $sql = NULL;
public $param = [];
public function __construct()
{
$this -> connect();
}
public function Build( QueryBuilder $Query )
{
$this -> sql = empty( $Query -> apply() )
? ""
: $Query -> sql;
return ( bool )$this -> sql;
}
public function execute()
{
$this -> pdo_prepare( $this -> sql );
$execute = $this -> pdo_execute( $this -> param );
return $execute;
}
public function query()
{
$this -> pdo_prepare( $this -> sql );
$this -> pdo_execute( $this -> param );
$fetch = $this -> fetch();
return $fetch;
}
}
$Query = new QueryBuilder();
$Query -> addpart( 'SELECT', "*" )
-> addpart( 'FROM', 'user' )
-> addpart( 'WHERE', ['id > 1', 'id < 10'] )
-> addpart( 'LIMIT', [8] );
$db = new Database();
$db -> Build( $Query );
$res = $db -> query();
//левой-правой-повторить