Работает обработка ссылок на таблицы с численностью

This commit is contained in:
2024-09-06 14:11:38 +03:00
parent 04374fef40
commit 2be45826c1
1698 changed files with 138656 additions and 174 deletions

View File

@ -9,6 +9,8 @@ use PDO;
final class Database
{
private PDO $pdo;
public const FILE_ADD_RECORDING ='not-recorded-in-db.yaml';
private const ERR_NO_CONNECT = "HY000";
private static $logfile = 'log/database.log';
private DatabaseConfig $databaseConfig;
private DatabaseLogger $logger;
@ -48,13 +50,11 @@ final class Database
}
/**
* Выборка данных из базы
* @param string $sql
* SQL-запрос
* @param array $params
* Параметры запроса
* @param string $sql SQL-запрос
* @param array $params Параметры запроса
* @return array
*/
public function select(string $sql, array $params = []) : array
public function select(string $sql, array $params = []): array
{
try {
$stmt = $this->pdo->prepare($sql);
@ -74,13 +74,11 @@ final class Database
}
/**
* Добавление данных в базу
* @param string $sql
* SQL-запрос
* @param array $params
* Параметры запроса
* @param string $sql SQL-запрос
* @param array $params Параметры запроса
* @return void
*/
public function insert(string $sql, array $params)
public function insert(string $sql, array $params): void
{
try {
$stmt = $this->pdo->prepare($sql);
@ -100,21 +98,23 @@ final class Database
$message = "Ошибка запроса:" . $e->getMessage();
$this->logger->log($message);
// При ошибке запроса сохраняем валидные данные в yaml-файл
if ($e->getCode() === "HY000") {
if ($e->getCode() === self::ERR_NO_CONNECT) {
$yaml = Yaml::dump($params);
file_put_contents('not-recorded-in-db.yaml', $yaml, FILE_APPEND);
file_put_contents(
self::FILE_ADD_RECORDING,
$yaml,
FILE_APPEND
);
}
}
}
/**
* Обновление данных в базе
* @param string $sql
* SQL-запрос
* @param array $params
* Параметры запроса
* @param string $sql SQL-запрос
* @param array $params Параметры запроса
* @return void
*/
public function update(string $sql, array $params)
public function update(string $sql, array $params): void
{
try {
$stmt = $this->pdo->prepare($sql);