public QueryBuilder ( |
||
$Bindings | ||
Результат |
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++; } }
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++; } } }
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; }
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(); }
protected final function ExecuteUpdate(IConnection $Connection, Relational\Procedure $ProcedureToExecute) { $QueryBuilder = $Connection->QueryBuilder(); $this->UpdateQuery($QueryBuilder, $ProcedureToExecute); $QueryBuilder->Build()->Execute(); }