public function setManager(TableManager $manager = NULL) { if ($manager === NULL) { $test = new TableManager(); ## Test to see if the sessions table exists and if not create it $sql = (string) "SHOW TABLES LIKE 's%'"; if (($tables = $test->runSql($sql)) === FALSE) { return FALSE; } if ($tables) { $exists = (bool) FALSE; foreach ($tables as $tbl) { $keys = array_keys($tbl); if ($tbl[$keys[0]] == "sessions") { $exists = TRUE; break; } } if ($exists === FALSE) { $sql = (string) "CREATE TABLE IF NOT EXISTS `sessions` ("; $sql .= "`id` INT(32) NOT NULL AUTO_INCREMENT PRIMARY KEY,"; $sql .= "`session_id` VARCHAR(150) NOT NULL DEFAULT '' UNIQUE,"; $sql .= "`access` INT(32) NOT NULL DEFAULT 0,"; $sql .= "`data` LONGTEXT,"; $sql .= "`ip_address` VARCHAR(15) NOT NULL DEFAULT '000.000.000.000',"; $sql .= "INDEX (`access`),"; $sql .= "INDEX (`ip_address`)"; $sql .= ") ENGINE=INNODB DEFAULT CHARSET=UTF8;"; if ($test->runSql($sql) === FALSE) { print "<pre>"; print_r($test->getErrors()); print "</pre>"; return FALSE; } } } $test->__destruct(); unset($test); $manager = new TableManager("sessions"); } $this->_manager = $manager; }