private static function selectDB($object) { $res = array('db' => "", 'item' => ""); if (is_array($object)) { $key = array_keys($object); $key = $key[0]; $res['db'] = $key; $res['item'] = self::safename($object[$key]); } else { $res['item'] = self::safename($object); } if ($res['db'] == "" && self::$sys['method'] == "files") { $res['db'] = "files"; } // for auto database if ($res['db'] == "" && self::$storage == "mpdo") { $create_table = false; if (!file_exists('sqlite:' . self::getPath() . '/phpfastcache.c')) { $create_table = true; } if (self::$autodb == "") { try { self::$autodb = new PDO('sqlite:' . self::getPath() . '/phpfastcache.c'); self::$autodb->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOexception $e) { die("Please CHMOD 0777 or Writable Permission for " . self::getPath()); } } if ($create_table == true) { self::$autodb->exec('CREATE TABLE IF NOT EXISTS "main"."db" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE , "item" VARCHAR NOT NULL UNIQUE , "dbname" INTEGER NOT NULL )'); } $db = self::$autodb->prepare("SELECT * FROM `db` WHERE `item`=:item"); $db->execute(array(":item" => $res['item'])); $row = $db->fetch(PDO::FETCH_ASSOC); if (isset($row['dbname'])) { // found key $res['db'] = $row['dbname']; } else { // not key // check filesize if ((int) self::$autosize < 10) { self::$autosize = 10; } // get last key $db = self::$autodb->prepare("SELECT * FROM `db` ORDER BY `id` DESC"); $db->execute(); $row = $db->fetch(PDO::FETCH_ASSOC); $dbname = isset($row['dbname']) ? $row['dbname'] : 1; $fsize = file_exists(self::getPath() . "/" . $dbname . ".cache") ? filesize(self::getPath() . "/" . $dbname . ".cache") : 0; if ($fsize > 1024 * 1024 * (int) self::$autosize) { $dbname = (int) $dbname + 1; } try { $insert = self::$autodb->prepare("INSERT INTO `db` (`item`,`dbname`) VALUES(:item,:dbname)"); $insert->execute(array(":item" => $res['item'], ":dbname" => $dbname)); } catch (PDOexception $e) { die('Database Error - Check A look at self::$autodb->prepare("INSERT INTO '); } $res['db'] = $dbname; } } return $res; }