ttrss/classes/logger/sql.php

35 lines
1.0 KiB
PHP
Raw Normal View History

2013-04-16 15:41:31 +00:00
<?php
class Logger_SQL {
private $pdo;
2013-04-16 15:41:31 +00:00
function log_error($errno, $errstr, $file, $line, $context) {
// separate PDO connection object is used for logging
if (!$this->pdo) $this->pdo = Db::instance()->pdo_connect();
if ($this->pdo && get_schema_version() > 117) {
2017-12-01 22:08:30 +00:00
2017-12-01 21:13:28 +00:00
$owner_uid = $_SESSION["uid"] ? $_SESSION["uid"] : null;
2013-04-16 15:41:31 +00:00
if (DB_TYPE == "mysql")
$context = substr($context, 0, 65534);
// passed error message may contain invalid unicode characters, failing to insert an error here
// would break the execution entirely by generating an actual fatal error instead of a E_WARNING etc
$errstr = UConverter::transcode($errstr, 'UTF-8', 'UTF-8');
$context = UConverter::transcode($context, 'UTF-8', 'UTF-8');
$sth = $this->pdo->prepare("INSERT INTO ttrss_error_log
2013-04-16 15:41:31 +00:00
(errno, errstr, filename, lineno, context, owner_uid, created_at) VALUES
2017-12-01 21:13:28 +00:00
(?, ?, ?, ?, ?, ?, NOW())");
$sth->execute([$errno, $errstr, $file, $line, $context, $owner_uid]);
2013-04-16 15:41:31 +00:00
2017-12-01 21:13:28 +00:00
return $sth->rowCount();
2013-04-16 15:41:31 +00:00
}
2013-04-16 15:41:31 +00:00
return false;
}
}