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); }