mirror of
https://github.com/torrentpier/torrentpier-lts.git
synced 2025-02-28 15:10:54 +03:00
Fixed broken SQLite3 cache (#102)
This commit is contained in:
parent
8804a156b4
commit
da382c3520
@ -63,6 +63,11 @@ define('TOR_TYPE_SILVER', 2);
|
||||
define('GUEST_UID', -1);
|
||||
define('BOT_UID', -746);
|
||||
|
||||
function sqlite3_escape_string ($str)
|
||||
{
|
||||
return SQLite3::escapeString($str);
|
||||
}
|
||||
|
||||
/**
|
||||
* Database
|
||||
*/
|
||||
|
12
library/includes/cache/sqlite.php
vendored
12
library/includes/cache/sqlite.php
vendored
@ -42,10 +42,10 @@ class cache_sqlite extends cache_common
|
||||
$this->db->shard($name);
|
||||
$cached_items = array();
|
||||
$this->prefix_len = strlen($this->prefix);
|
||||
$this->prefix_sql = SQLite3::escapeString($this->prefix);
|
||||
$this->prefix_sql = sqlite3_escape_string($this->prefix);
|
||||
|
||||
$name_ary = $name_sql = (array) $name;
|
||||
array_deep($name_sql, 'SQLite3::escapeString');
|
||||
array_deep($name_sql, 'sqlite3_escape_string');
|
||||
|
||||
// get available items
|
||||
$rowset = $this->db->fetch_rowset("
|
||||
@ -85,9 +85,9 @@ class cache_sqlite extends cache_common
|
||||
function set ($name, $value, $ttl = 604800)
|
||||
{
|
||||
$this->db->shard($this->prefix . $name);
|
||||
$name_sql = SQLite3::escapeString($this->prefix . $name);
|
||||
$name_sql = sqlite3_escape_string($this->prefix . $name);
|
||||
$expire = TIMENOW + $ttl;
|
||||
$value_sql = SQLite3::escapeString(serialize($value));
|
||||
$value_sql = sqlite3_escape_string(serialize($value));
|
||||
|
||||
$result = $this->db->query("REPLACE INTO ". $this->cfg['table_name'] ." (cache_name, cache_expire_time, cache_value) VALUES ('$name_sql', $expire, '$value_sql')");
|
||||
return (bool) $result;
|
||||
@ -98,7 +98,7 @@ class cache_sqlite extends cache_common
|
||||
if ($name)
|
||||
{
|
||||
$this->db->shard($this->prefix . $name);
|
||||
$result = $this->db->query("DELETE FROM ". $this->cfg['table_name'] ." WHERE cache_name = '". SQLite3::escapeString($this->prefix . $name) ."'");
|
||||
$result = $this->db->query("DELETE FROM ". $this->cfg['table_name'] ." WHERE cache_name = '". sqlite3_escape_string($this->prefix . $name) ."'");
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -276,7 +276,7 @@ class sqlite_common extends cache_common
|
||||
if ($name)
|
||||
{
|
||||
$this->db->shard($this->prefix . $name);
|
||||
$result = $this->db->query("DELETE FROM ". $this->cfg['table_name'] ." WHERE cache_name = '". SQLite3::escapeString($this->prefix . $name) ."'");
|
||||
$result = $this->db->query("DELETE FROM ". $this->cfg['table_name'] ." WHERE cache_name = '". sqlite3_escape_string($this->prefix . $name) ."'");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -36,8 +36,8 @@ class datastore_sqlite extends datastore_common
|
||||
{
|
||||
$this->data[$item_name] = $item_data;
|
||||
|
||||
$ds_title = SQLite3::escapeString($this->prefix . $item_name);
|
||||
$ds_data = SQLite3::escapeString(serialize($item_data));
|
||||
$ds_title = sqlite3_escape_string($this->prefix . $item_name);
|
||||
$ds_data = sqlite3_escape_string(serialize($item_data));
|
||||
|
||||
$result = $this->db->query("REPLACE INTO ". $this->cfg['table_name'] ." (ds_title, ds_data) VALUES ('$ds_title', '$ds_data')");
|
||||
|
||||
@ -54,9 +54,9 @@ class datastore_sqlite extends datastore_common
|
||||
if (!$items = $this->queued_items) return;
|
||||
|
||||
$prefix_len = strlen($this->prefix);
|
||||
$prefix_sql = SQLite3::escapeString($this->prefix);
|
||||
$prefix_sql = sqlite3_escape_string($this->prefix);
|
||||
|
||||
array_deep($items, 'SQLite3::escapeString');
|
||||
array_deep($items, 'sqlite3_escape_string');
|
||||
$items_list = $prefix_sql . join("','$prefix_sql", $items);
|
||||
|
||||
$rowset = $this->db->fetch_rowset("SELECT ds_title, ds_data FROM ". $this->cfg['table_name'] ." WHERE ds_title IN ('$items_list')");
|
||||
|
Loading…
Reference in New Issue
Block a user