new QI object for sql installations, some tests with it + adjustments towards it

This commit is contained in:
Ulf Gebhardt 2015-09-09 23:27:53 +02:00
parent 924162dc5f
commit 813ecf397f
7 changed files with 71 additions and 13 deletions

View File

@ -1,16 +1,11 @@
<?php
namespace SYSTEM\DB;
class Connection extends ConnectionAbstr{
//The open Connection, either ConnectionPG or ConnectionMYS
//The open Connection
private $connection = NULL;
//private $dbinfo = NULL;
//Connects to DB, dependent on DBInfo a connection to a PG or MYS will be established
//Connects to DB, dependent on DBInfo a connection will be established
public function __construct(DBInfo $dbinfo = null){
//$this->dbinfo = $dbinfo;
if(!$dbinfo){
$dbinfo = \SYSTEM\system::getSystemDBInfo();}
@ -44,4 +39,10 @@ class Connection extends ConnectionAbstr{
public function exec($query){
return $this->connection->exec($query);}
public function trans(){
return $this->connection->trans();}
public function commit(){
return $this->connection->commit();}
}

View File

@ -13,7 +13,8 @@ abstract class ConnectionAbstr {
abstract public function prepare($stmtName, $stmt, $values);
//Query Database with normal Statement with $query = SQLString
abstract public function query($query);
abstract public function commit();
abstract public function trans();
//Convert Prepared Values to SQL Type identifiers
protected static function getPrepareValueType($value){
if(is_double($value)){

View File

@ -1,7 +1,5 @@
<?php
namespace SYSTEM\DB;
class ConnectionMYS extends ConnectionAbstr {
private $connection = NULL;
@ -43,13 +41,25 @@ class ConnectionMYS extends ConnectionAbstr {
return mysqli_close($this->connection);}
public function query($query){
$result = mysqli_query($this->connection, $query);
$result = \mysqli_query($this->connection, $query);
if(!$result){
throw new \Exception('Could not query Database. Check ur Query Syntax or required Rights: '.mysqli_error($this->connection));}
throw new \Exception('Could not query Database. Check ur Query Syntax or required Rights: '.\mysqli_error($this->connection));}
if($result === TRUE){
return TRUE;}
return new ResultMysqli($result);
}
public function commit(){
if(!\mysqli_commit($this->connection)){
throw new \Exception('Could not start Transaction: '.\mysqli_error($this->connection));}
return true;
}
public function trans(){
if(!\mysqli_begin_transaction($this->connection,MYSQLI_TRANS_START_WITH_CONSISTENT_SNAPSHOT)){
throw new \Exception('Could not start Transaction: '.\mysqli_error($this->connection));}
return true;
}
}

30
db/qq/QI.php Normal file
View File

@ -0,0 +1,30 @@
<?php
namespace SYSTEM\DB;
class QI {
public static function QI($dbinfo = null){
if(!$dbinfo){
$dbinfo = \SYSTEM\system::getSystemDBInfo();}
if($dbinfo instanceof \SYSTEM\DB\DBInfoPG){
$files = static::files_pg();
} else if ($dbinfo instanceof \SYSTEM\DB\DBInfoMYS){
$files = static::files_mysql();
} else if ($dbinfo instanceof \SYSTEM\DB\DBInfoAMQP){
$files = static::files_amqp();
} else if ($dbinfo instanceof \SYSTEM\DB\DBInfoSQLite){
$files = static::files_sqlite();
} else {
throw new \SYSTEM\LOG\ERROR(static::get_class().' Could not understand Database Settings. Check ur Database Settings');}
$command = 'mysql'.
' --host=' . $dbinfo->m_host.
' --user=' . $dbinfo->m_user.
' --password=' . $dbinfo->m_password.
' --database=' . $dbinfo->m_database.
' --execute="SOURCE ';
$result = array();
foreach($files as $file){
$result[] = shell_exec($command .$file. '"');}
return \SYSTEM\LOG\JsonResult::toString($result);
}
}

View File

@ -1,3 +1,4 @@
<?php
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/tbl','SYSTEM\DBD');
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/qq','SYSTEM\DBD');
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/qq','SYSTEM\DBD');
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/qt','SYSTEM\DBD');

10
dbd/qt/INSTALL_SAI.php Normal file
View File

@ -0,0 +1,10 @@
<?php
namespace SYSTEM\DBD;
class INSTALL_SAI extends \SYSTEM\DB\QI {
public static function get_class(){return \get_class();}
public static function files_mysql(){
return array(
\SYSTEM\SERVERPATH(new \SYSTEM\PSQL(),'sql/mysql/data/system_sai_api.sql')
);
}
}

View File

@ -29,6 +29,11 @@ class PLIB extends PATH {
return C_ROOT.\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_PATH_SYSTEMPATHREL).'lib/'.C_SUBPATH;}
}
class PSQL extends PATH {
static public function getPath(){
return C_ROOT.\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_PATH_SYSTEMPATHREL).'dbd/'.C_SUBPATH;}
}
function SERVERPATH(\SYSTEM\PATH $basepath, $subpath = ''){
return str_replace( array(C_ROOT,C_SUBPATH),
array(\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_PATH_BASEPATH),$subpath),