diff --git a/src/includes/class.db.mysql.php b/src/includes/class.db.mysql.php index 63731e7..20385df 100644 --- a/src/includes/class.db.mysql.php +++ b/src/includes/class.db.mysql.php @@ -147,7 +147,7 @@ class Database_Mysql extends Database_Abstract } $query .= $m[$i]; } - $this->lastQuery = $query; + $this->setLastQuery($query); $dbr = new DatabaseResult_Mysql($this->dbh, $query, $resultless); $this->affected = $dbr->rowsAffected(); return $dbr; diff --git a/src/includes/class.db.mysqli.php b/src/includes/class.db.mysqli.php index 679e9bc..4f6e0f2 100644 --- a/src/includes/class.db.mysqli.php +++ b/src/includes/class.db.mysqli.php @@ -122,7 +122,7 @@ class Database_Mysqli extends Database_Abstract } $query .= $m[$i]; } - $this->lastQuery = $query; + $this->setLastQuery($query); return new DatabaseResult_Mysqli($this->dbh, $query, $resultless); } diff --git a/src/includes/class.db.postgres.php b/src/includes/class.db.postgres.php index dfc22ae..ea251f2 100644 --- a/src/includes/class.db.postgres.php +++ b/src/includes/class.db.postgres.php @@ -150,7 +150,7 @@ class Database_Postgres extends Database_Abstract } $query .= $m[$i]; } - $this->lastQuery = $query; + $this->setLastQuery($query); $dbr = new DatabaseResult_Postgres($this->dbh, $query, $resultless); $this->affected = $dbr->rowsAffected(); return $dbr; diff --git a/src/includes/class.db.sqlite3.php b/src/includes/class.db.sqlite3.php index 6a86cde..9f38d8b 100644 --- a/src/includes/class.db.sqlite3.php +++ b/src/includes/class.db.sqlite3.php @@ -151,7 +151,7 @@ class Database_Sqlite3 extends Database_Abstract } $query .= $m[$i]; } - $this->lastQuery = $query; + $this->setLastQuery($query); $dbr = new DatabaseResult_Sqlite3($this->dbh, $query, $resultless); $this->affected = $dbr->rowsAffected(); return $dbr; diff --git a/src/includes/class.dbconnection.php b/src/includes/class.dbconnection.php index aa8e44a..8f33262 100644 --- a/src/includes/class.dbconnection.php +++ b/src/includes/class.dbconnection.php @@ -46,6 +46,9 @@ abstract class Database_Abstract /** @var string */ protected $lastQuery = ''; + /** @var null|string */ + protected $logQueryToFile = null; + abstract function connect(array $params): void; abstract function sq(string $query, ?array $values = null); abstract function sqa(string $query, ?array $values = null): ?array; @@ -73,6 +76,22 @@ abstract class Database_Abstract } $this->prefix = $prefix; } + + function setLogQueryToFile(?string $path) { + //any checks? + $this->logQueryToFile = $path; + } + + function setLastQuery(string $lastQuery) { + $this->lastQuery = $lastQuery; + if (MTT_DEBUG && $this->logQueryToFile !== null) { + $f = fopen($this->logQueryToFile, "a"); + if ($f) { + fwrite($f, $this->lastQuery . "\n"); + fclose($f); + } + } + } } abstract class DatabaseResult_Abstract