can log sql queries to file

This commit is contained in:
maxpozdeev 2025-01-20 00:35:22 +03:00
parent b0a104ea01
commit 3ddd6d6ee4
5 changed files with 23 additions and 4 deletions

View file

@ -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;

View file

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

View file

@ -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;

View file

@ -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;

View file

@ -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