public function getRows($limit, $offset = 0)
 {
     // Формируем запрос на получение данных из таблицы
     $queryString = 'SELECT * FROM `' . $this->table . '` LIMIT ' . $offset . ', ' . $limit;
     // Получаем информацию из БД
     return Database::getSharedDatabase()->fetchAllForQueryWithParams($queryString);
 }
 public function getTables()
 {
     // Формируем запрос на получение информации о таблицах в БД
     $queryString = '
     SELECT
       `table_name` AS `name`,
       `engine`
     FROM `information_schema`.`tables`
     WHERE `table_type` = \'BASE TABLE\' AND `table_schema` = SCHEMA()';
     $queryParams = [];
     // Учитываем префикс таблиц, если это необходимо
     if (!is_null(Database::getSharedDatabase()->getTablesPrefix())) {
         $queryString .= ' AND TABLE_NAME LIKE :prefix';
         $queryParams[':prefix'] = Database::getSharedDatabase()->getTablesPrefix() . '%';
     }
     // Получаем информацию из БД
     return Database::getSharedDatabase()->fetchAllForQueryWithParams($queryString, $queryParams);
 }
 /**
  *
  *
  * @param int $rowsCount
  */
 public function generate($rowsCount)
 {
     // Собираем информацию о полях, которые мы можем сгенерить
     $columnsList = array_keys($this->columnsGenerators);
     $paramsList = array_map(function ($columnName) {
         return ':' . $columnName;
     }, $columnsList);
     // Формируем запрос
     $queryString = '
         INSERT INTO `' . $this->analyzer->getTable() . '` (' . implode(',', $columnsList) . ')
         VALUES (' . implode(',', $paramsList) . ')';
     while ($rowsCount > 0) {
         // Генерируем данные для каждого поля
         $queryParams = [];
         foreach ($this->columnsGenerators as $columnName => $generator) {
             $queryParams[':' . $columnName] = $generator->generate();
         }
         // Если получилось записать в таблицу - уменьшаем количество оствшихся записей, которые
         // еще необходимо сгенерировать. Понимаю что может быть бесконечный цикл, но...
         if (Database::getSharedDatabase()->executeQueryWithParams($queryString, $queryParams)) {
             $rowsCount--;
         }
     }
 }
 public function generate()
 {
     $sql = 'SELECT `' . $this->relationInfo['column'] . '` FROM `' . $this->relationInfo['table'] . '` ORDER BY RAND() LIMIT 1';
     return Database::getSharedDatabase()->fetchColumnForQueryWithParams($sql);
 }