]> git.wh0rd.org - tt-rss.git/blobdiff - classes/logger/sql.php
Logger_SQL: use separate PDO connection
[tt-rss.git] / classes / logger / sql.php
old mode 100644 (file)
new mode 100755 (executable)
index 7ee2284..73552c1
@@ -1,35 +1,26 @@
 <?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 = db_escape_string($this->link, json_encode($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;
        }
 
 }
-?>