Storm\Drivers\Platforms\Base\Queries\StandardPersister::InsertRowsIndividually PHP Метод

InsertRowsIndividually() защищенный Метод

protected InsertRowsIndividually ( Storm\Drivers\Base\Relational\Queries\IConnection $Connection, Table $Table, array $Rows, callable $PostIndividualInsertCallback )
$Connection Storm\Drivers\Base\Relational\Queries\IConnection
$Table Storm\Drivers\Base\Relational\Table
$Rows array
$PostIndividualInsertCallback callable
    protected function InsertRowsIndividually(IConnection $Connection, Table $Table, array $Rows, callable $PostIndividualInsertCallback)
    {
        $TableName = $Table->GetName();
        $Columns = $Table->GetColumns();
        $ColumnNames = array_keys($Columns);
        $QueryBuilder = $Connection->QueryBuilder();
        $this->AppendInsert($QueryBuilder, $TableName, $ColumnNames);
        $QueryBuilder->Append('(');
        foreach ($QueryBuilder->Delimit($Columns, ',') as $Column) {
            $QueryBuilder->AppendColumnData($Column, null);
        }
        $QueryBuilder->Append(')');
        $PreparedInsert = $QueryBuilder->Build();
        $Bindings = $PreparedInsert->GetBindings();
        $ColumnValues = array_values($Columns);
        $ParameterTypes = $this->GetParamterTypes($ColumnValues);
        foreach ($Rows as $Row) {
            foreach ($ColumnValues as $Count => $Column) {
                $Value = $Row[$Column];
                $Bindings->Bind($Value, $Value === null ? ParameterType::Null : $ParameterTypes[$Count], $Count);
            }
            $PreparedInsert->Execute();
            $PostIndividualInsertCallback($Row);
        }
    }