phpmyadmin/src/Controllers/Database/MultiTableQuery/QueryController.php
Maurício Meneghini Fauth 1f4bbe5636
Replace request globals with ServerRequest object in Sql class
Signed-off-by: Maurício Meneghini Fauth <mauricio@mfauth.net>
2026-01-15 15:24:51 -03:00

52 lines
1.5 KiB
PHP

<?php
declare(strict_types=1);
namespace PhpMyAdmin\Controllers\Database\MultiTableQuery;
use PhpMyAdmin\Controllers\InvocableController;
use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\ParseAnalyze;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Routing\Route;
use PhpMyAdmin\Sql;
use PhpMyAdmin\Url;
#[Route('/database/multi-table-query/query', ['POST'])]
final class QueryController implements InvocableController
{
public function __construct(private readonly ResponseRenderer $response, private readonly Sql $sql)
{
}
public function __invoke(ServerRequest $request): Response
{
$sqlQuery = $request->getParsedBodyParamAsString('sql_query');
$db = $request->getParam('db');
$database = DatabaseName::from($db);
[, $db] = ParseAnalyze::sqlQuery($sqlQuery, $database->getName());
$goto = Url::getFromRoute('/database/multi-table-query');
$this->response->addHTML($this->sql->executeQueryAndSendQueryResponse(
$request,
null,
false, // is_gotofile
$db, // db
null, // table
'', // sql_query_for_bookmark - see below
'', // message_to_show
$goto, // goto
null, // disp_query
'', // disp_message
$sqlQuery, // sql_query
$sqlQuery, // complete_query
));
return $this->response->response();
}
}