From 9b67b8b8e6559d78a3a00fe086879b5e428b4cda Mon Sep 17 00:00:00 2001 From: Jacek Kowalski <Jacek@jacekk.info> Date: Sun, 04 Nov 2012 17:32:42 +0000 Subject: [PATCH] Poprawka błędu dotyczącego użycia BotSession - niepoprawne ustawianie nazwy klasy (bez pośrednictwa metody setClass()). --- class/BotSession.php | 26 ++++++++++++++++++++++++++ 1 files changed, 26 insertions(+), 0 deletions(-) diff --git a/class/BotSession.php b/class/BotSession.php index d273779..36cd174 100644 --- a/class/BotSession.php +++ b/class/BotSession.php @@ -37,6 +37,30 @@ $this->PDO = new PDO('sqlite:'.BOT_TOPDIR.'/database/'.sha1($this->user).'.sqlite'); $this->PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $this->PDO->setAttribute(PDO::ATTR_ORACLE_NULLS, PDO::NULL_TO_STRING); + + $st = $this->PDO->query('SELECT value FROM data WHERE class=\'\' AND name=\'_version\''); + $row = $st->fetch(PDO::FETCH_ASSOC); + if(is_array($row)) { + $version = (int)$row['value']; + } + else + { + $version = 0; + } + $st->closeCursor(); + + if($version < 1) { + $this->PDO->query('UPDATE data SET class=\'kino\' WHERE class=\'\' AND name=\'kino\''); + $this->PDO->query('INSERT OR REPLACE INTO data (class, name, value) VALUES (\'\', \'_version\', 1)'); + $version = 1; + } + + if($version < 3) { + $this->PDO->query('DELETE FROM data WHERE class IS NULL AND name=\'user_struct\''); + $this->PDO->query('INSERT OR REPLACE INTO data (class, name, value) VALUES (\'\', \'_version\', 3)'); + $version = 3; + } + return; } @@ -65,6 +89,8 @@ $this->PDO->beginTransaction(); $st = $this->PDO->prepare('INSERT OR REPLACE INTO data (class, name, value) VALUES (?, ?, ?)'); + $st->execute(array('', '_version', 2)); + foreach($files as $file) { $data = unserialize(file_get_contents($file)); foreach($data as $name => $value) { -- Gitblit v1.9.1