<?php
class Logger_SQL {
- private $link;
-
- function __construct() {
- $this->link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
- }
+ private $pdo;
function log_error($errno, $errstr, $file, $line, $context) {
- if ($errno == E_NOTICE) return false;
+ // separate PDO connection object is used for logging
+ if (!$this->pdo) $this->pdo = Db::instance()->pdo_connect();
- if ($this->link) {
- $errno = db_escape_string($this->link, $errno);
- $errstr = db_escape_string($this->link, $errstr);
- $file = db_escape_string($this->link, $file);
- $line = db_escape_string($this->link, $line);
- $context = ''; // backtrace is a lot of data which is not really critical to store
- //$context = db_escape_string($this->link, serialize($context));
+ if ($this->pdo && get_schema_version() > 117) {
- $owner_uid = $_SESSION["uid"] ? $_SESSION["uid"] : "NULL";
+ $owner_uid = $_SESSION["uid"] ? $_SESSION["uid"] : null;
- $result = db_query($this->link,
- "INSERT INTO ttrss_error_log
+ $sth = $this->pdo->prepare("INSERT INTO ttrss_error_log
(errno, errstr, filename, lineno, context, owner_uid, created_at) VALUES
- ($errno, '$errstr', '$file', '$line', '$context', $owner_uid, NOW())");
-
- return db_affected_rows($this->link, $result) != 0;
+ (?, ?, ?, ?, ?, ?, NOW())");
+ $sth->execute([$errno, $errstr, $file, $line, $context, $owner_uid]);
+ return $sth->rowCount();
}
+
return false;
}
}
-?>