From: Marcin Haba Date: Tue, 21 Mar 2023 09:42:39 +0000 (+0100) Subject: baculum: Add method to execute SQL queries X-Git-Tag: Release-13.0.3~107 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=106dd0a90e429c78f5e14a2b894933f5c9e5d263;p=thirdparty%2Fbacula.git baculum: Add method to execute SQL queries --- diff --git a/gui/baculum/protected/API/Modules/Database.php b/gui/baculum/protected/API/Modules/Database.php index 5826be253..35edac7cf 100644 --- a/gui/baculum/protected/API/Modules/Database.php +++ b/gui/baculum/protected/API/Modules/Database.php @@ -280,7 +280,6 @@ class Database extends APIModule { * @return PDO statement. */ public static function runQuery($sql, $params = []) { - $builder = self::getQueryBuilder(); if (count($params) == 0) { /** * Please note that in case no params the TDbCommandBuilder::applyCriterias() @@ -293,11 +292,40 @@ class Database extends APIModule { $statement = $pdo->query($sql); } else { + $builder = self::getQueryBuilder(); $command = $builder->applyCriterias($sql, $params); $statement = $command->getPdoStatement(); $command->query(); } return $statement; } + + /** + * Execute SQL query. + * + * @param string $sql SQL query + * @param array $params SQL query params + * @return PDO statement. + */ + public static function execute($sql, $params = []) { + if (count($params) == 0) { + /** + * Please note that in case no params the TDbCommandBuilder::applyCriterias() + * returns empty the PDO statement handler. From this reason here + * the query is called directly by PDO. + */ + $connection = JobRecord::finder()->getDbConnection(); + $connection->setActive(true); + $pdo = $connection->getPdoInstance(); + $statement = $pdo->exec($sql); + + } else { + $builder = self::getQueryBuilder(); + $command = $builder->applyCriterias($sql, $params); + $statement = $command->getPdoStatement(); + $command->execute(); + } + return $statement; + } } ?>