public static function __constructStatic() { /** * Get DB config */ $config = \Lobby::config(true); if (is_array($config)) { /** * Make DB credentials variables from the config.php file */ self::$prefix = $config['prefix']; self::$type = $config['type']; $options = array(\PDO::ATTR_PERSISTENT => true, \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION); try { if ($config['type'] === 'mysql') { self::$dbh = new \PDO("mysql:dbname={$config['dbname']};host={$config['host']};port={$config['port']};charset=utf8;", $config['username'], $config['password'], $options); /** * Check if Lobby tables exist */ $notable = false; $tables = array("options", "data"); // The Tables of Lobby foreach ($tables as $tableName) { $results = self::$dbh->prepare("SHOW TABLES LIKE ?"); $results->execute(array(self::$prefix . $tableName)); if ($results->rowCount() == 0) { $notable = true; } } } else { if ($config['type'] === 'sqlite') { self::$dbh = new \PDO("sqlite:" . \Lobby\FS::loc($config['path']), "", "", $options); /** * Enable Multithreading Read/Write */ self::$dbh->exec("PRAGMA journal_mode=WAL;"); /** * Check if Lobby tables exist */ $sql = self::$dbh->query("SELECT COUNT(1) FROM `sqlite_master` WHERE `type` = 'table' AND (`name` = 'l_data' OR `name` = 'l_options')"); $notable = $sql->fetchColumn() === "2" ? false : true; } } if ($notable === false) { /* There are database tables */ parent::$installed = true; } else { parent::log(array("fatal", "Tables required by Lobby was not found in the database. Check your <b>config.php</b> and database to fix the error. Or Install again by removing <b>config.php</b>.")); } } catch (\PDOException $e) { parent::$installed = false; $error = $e->getMessage(); parent::log(array("fatal", "Unable to connect to database server. Is the database credentials given in <b>config.php</b> correct ? <blockquote>{$error}</blockquote>")); } } else { self::$installed = false; } }
public static function init() { $root = L_DIR; $config = \Lobby::config(true); if (is_array($config)) { /** * Make DB credentials variables from the config.php file */ self::$prefix = $config['prefix']; $options = array(\PDO::ATTR_PERSISTENT => true, \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION); try { self::$dbh = new \PDO("mysql:dbname={$config['dbname']};host={$config['host']};port={$config['port']}", $config['username'], $config['password'], $options); $notable = false; $tables = array("options", "data"); // The Tables of Lobby foreach ($tables as $tableName) { $results = self::$dbh->prepare("SHOW TABLES LIKE ?"); $results->execute(array(self::$prefix . $tableName)); if ($results->rowCount() == 0) { $notable = true; } } if ($notable === false) { /* There are database tables */ parent::$installed = true; } else { self::$error = "Lobby Tables Not Found"; self::log("Lobby Tables not found in database. Install Again."); } } catch (\PDOException $e) { parent::$installed = false; $error = $e->getMessage(); self::$error = $error; $GLOBALS['initError'] = array("Couldn't Connect To Database", "Unable to connect to database server. Is the credentials given in <b>config.php</b> correct ? <blockquote>" . $error . "</blockquote>"); self::log("Unable to connect to database server : " . $error); } } else { self::$installed = false; } }