43 lines
1.4 KiB
PHP
43 lines
1.4 KiB
PHP
<?php
|
|
namespace SvedenParser\ContingentParser;
|
|
|
|
use NilPortugues\Sql\QueryBuilder\Builder\GenericBuilder;
|
|
use SvedenParser\Repository;
|
|
|
|
final class ContingentRepository extends Repository
|
|
{
|
|
/**
|
|
* Внесение данных численности обучающихся в базу данных opendata
|
|
* @param array $data
|
|
* Массив записей численности по специальностям
|
|
* @return void
|
|
*/
|
|
public function insert(array $data): void
|
|
{
|
|
/*
|
|
INSERT INTO sveden_education_contingent
|
|
(org_id, spec_id, spec_code, spec_name, edu_level, edu_forms, contingent)
|
|
VALUES
|
|
(:v1, :v2, :v3, :v4, :v5, :v6, :v7)
|
|
...
|
|
*/
|
|
$builder = new GenericBuilder();
|
|
$countAtributes = count($data[0]);
|
|
$size = $countAtributes * (count($data) - 1);
|
|
$query = $builder->insert()
|
|
->setTable('sveden_education_contingent')
|
|
->setValues(
|
|
$data[0]
|
|
);
|
|
$sql = $builder->write($query);
|
|
for ($i = $countAtributes; $i <= $size;) {
|
|
$sql .= " (:v".(++$i).", :v".(++$i).", :v".(++$i).", :v"
|
|
.(++$i).", :v".(++$i).", :v".(++$i).", :v".(++$i).")\n";
|
|
}
|
|
$sql = preg_replace('/\)\s*VALUES\s*/', ') VALUES ', $sql);
|
|
$sql = preg_replace('/\)\s*\(/', '), (', $sql);
|
|
$this->opendata->insert($sql, $data);
|
|
}
|
|
|
|
|
|
} |