host}"; if (! empty($config->port)) { if ($isSqlSrv || strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { $seperator = ','; } else { $seperator = ':'; } $dsn .= "{$seperator}{$config->port}"; } $dsn .= ";{$dbOption}={$config->dbname}"; if (! empty($config->charset) && ! $isSqlSrv) { $dsn .= ";charset={$config->charset}"; } if (isset($config->useSsl) && $isSqlSrv) { $dsn .= ';Encrypt=' . ($config->useSsl ? 'true' : 'false'); } if (isset($config->sslDoNotVerifyServerCert) && $isSqlSrv) { $dsn .= ';TrustServerCertificate=' . ($config->sslDoNotVerifyServerCert ? 'true' : 'false'); } return $dsn; } public function registerQueryBuilderCallbacks(QueryBuilder $queryBuilder) { parent::registerQueryBuilderCallbacks($queryBuilder); $queryBuilder->on(QueryBuilder::ON_ASSEMBLE_SELECT, function (Select $select) { if ( ($select->hasLimit() || $select->hasOffset()) && ! $select->hasOrderBy() ) { $select->orderBy(1); } }); return $this; } }