QueryBuilder() public method

public QueryBuilder ( Bindings $Bindings = null ) : QueryBuilder
$Bindings Bindings
return QueryBuilder
 protected final function UpsertRows(IConnection $Connection, Table $Table, array $Rows, $ShouldReturnKeyData)
 {
     $QueryBuilder = $Connection->QueryBuilder();
     $this->UpsertRowsQuery($QueryBuilder, $Table, $Rows, $ShouldReturnKeyData);
     $ExecutedQuery = $QueryBuilder->Build()->Execute();
     if ($ShouldReturnKeyData) {
         return $ExecutedQuery->FetchAll();
     }
 }
 public function FillPrimaryKeys(IConnection $Connection, array $UnkeyedRows)
 {
     $PriamryKeyColumns = $this->GetPrimaryKeyColumns();
     $PrimaryKeyColumn = reset($PriamryKeyColumns);
     $QueryBuilder = $Connection->QueryBuilder();
     $QueryBuilder->AppendIdentifier('INSERT INTO # ', [$this->SequenceTable->GetName()]);
     $QueryBuilder->AppendIdentifier('(#)', [$this->SequenceTable->SequenceNameColumn->GetName()]);
     $QueryBuilder->Append(' VALUES ');
     $InsertRows = array_fill(0, count($UnkeyedRows), '(#)');
     $QueryBuilder->AppendValue(implode(',', $InsertRows), $this->SequenceName);
     $QueryBuilder->Build()->Execute();
     //Mysql will return the first inserted id
     $IncrementId = (int) $Connection->GetLastInsertIncrement();
     foreach ($UnkeyedRows as $UnkeyedRow) {
         $UnkeyedRow[$PrimaryKeyColumn] = $PrimaryKeyColumn->ToPersistenceValue($IncrementId);
         $IncrementId++;
     }
 }
Beispiel #3
0
 public function FillPrimaryKeys(IConnection $Connection, array $UnkeyedRows)
 {
     if (count($UnkeyedRows) === 0) {
         return;
     }
     $PrimaryKeyColumns = $this->GetPrimaryKeyColumns();
     $QueryBuilder = $Connection->QueryBuilder();
     $UUIDStatment = 'SELECT UUID()';
     $UUIDStatments = array_fill(0, count($UnkeyedRows) * count($PrimaryKeyColumns) - 1, $UUIDStatment);
     array_unshift($UUIDStatments, $UUIDStatment . ' AS `UUID`');
     $QueryBuilder->Append(implode(' UNION ALL ', $UUIDStatments));
     $UUIDRows = $QueryBuilder->Build()->Execute()->FetchAll();
     $Count = 0;
     foreach ($UnkeyedRows as $UnkeyedRow) {
         foreach ($PrimaryKeyColumns as $PrimaryKeyColumn) {
             $UUID = $UUIDRows[$Count]['UUID'];
             $UnkeyedRow[$PrimaryKeyColumn] = $PrimaryKeyColumn->ToPersistenceValue($UUID);
             $Count++;
         }
     }
 }
Beispiel #4
0
 private function BuildColumns(IConnection $Connection, $DatabaseName, $TableName)
 {
     $QueryBuilder = $Connection->QueryBuilder();
     $QueryBuilder->Append('SELECT * FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE TRUE ');
     $QueryBuilder->AppendValue('AND `TABLE_SCHEMA` = # ', $DatabaseName);
     $QueryBuilder->AppendValue('AND `TABLE_NAME` = # ', $TableName);
     $QueryBuilder->AppendValue('ORDER BY `ORDINAL_POSITION`', $TableName);
     $Columns = [];
     foreach ($QueryBuilder->Build()->Execute()->FetchAll() as $ColumnRow) {
         $Column = $this->BuildColumn($Connection, $ColumnRow);
         $Columns[$Column->GetName()] = $Column;
     }
     return $Columns;
 }
Beispiel #5
0
 public final function Select(IConnection $Connection, Relational\Request $Request)
 {
     $QueryBuilder = $Connection->QueryBuilder();
     $this->SelectQuery($QueryBuilder, $Request);
     return $QueryBuilder->Build()->Execute()->FetchAll();
 }
 public final function DropColumn(IConnection $Connection, Table $Table, Column $Column)
 {
     $QueryBuilder = $Connection->QueryBuilder();
     $this->AppendDropColumnQuery($QueryBuilder, $Table, $Column);
     $QueryBuilder->Build()->Execute();
 }
Beispiel #7
0
 protected final function ExecuteUpdate(IConnection $Connection, Relational\Procedure $ProcedureToExecute)
 {
     $QueryBuilder = $Connection->QueryBuilder();
     $this->UpdateQuery($QueryBuilder, $ProcedureToExecute);
     $QueryBuilder->Build()->Execute();
 }