db = new mysqli(DBHOST, DBUSER, DBPASSWORD, DBNAME); } catch (Exception $e){ failure($e->getMessage(), '

500 Server Failure

', false, '

Failed to open database.

'); } if ( $this->db->connect_errno() ){ failure("

Can't connect to the database. MySQL gave this error code: ".$this->db->connect_errno . "

", '500 Server Failure', false, '

Connection to MySQL server failed.

'); } if ( ! $this->db->ping() ){ failure("

Can't reach MySQL server. Server says: " . $this->db->error . "

", '500 Server Failure', false, "

Can't reach MySQL server!

"); } if ( ! $this->db->set_charset(DBCHARSET) ){ failure("

Can't set UTF-8 as a charset on your MySQL server." , '500 Server Failure', false, "

Setting Charset failed!

"); } } public function close(){ $this->db->close(); } public function check(){ if ( ! $this->db->ping() ){ return false; } return true; } private function _prepare($sql){ if ( is_null($sql) || $sql == "") return false; return $this->db->real_escape_string($sql); } public function doQuery($string){ if ( ! $this->check() ) failure("

Can't reach MySQL server. Server says: ". $this->db->error . "

", '500 Server Failure', false, "

Can't reach MySQL server!

") $sql = _prepare($string); if ( ! $sql ) return false; return $this->db->query($sql); } public function setUp(){ $user_table = 'CREATE TABLE IF NOT EXISTS ' . DBPREFIX . 'user ( id INTEGER AUTO_INCREMENT NOT NULL, PRIMARY KEY(id), name VARCHAR(70), UNIQUE(name), password VARCHAR(70), UNIQUE(password), email VARCHAR(70), UNIQUE(email), invites INTEGER, inviter INTEGER, invitekey VARCHAR(70), UNIQUE(invitekey), status INTEGER, color_folder VARCHAR(70), color_file VARCHAR(70)) ENGINE=InnoDB;' $files_table = 'CREATE TABLE IF NOT EXISTS ' . DBPREFIX . 'files ( files_id INTEGER AUTO_INCREMENT NOT NULL, PRIMARY KEY(files_id), parent INTEGER, owner INTEGER, name VARCHAR(70), type VARCHAR(70), mime VARCHAR(70), size INTEGER, visibility VARCHAR(70), hash VARCHAR(70), download_link VARCHAR(70), upload_time INTEGER, last_access INTEGER, FOREIGN KEY(files_id) REFERENCES user(id) ON DELETE CASCADE ) ENGINE=InnoDB;' $banned_user_table = 'CREATE TABLE IF NOT EXISTS ' . DBPREFIX . 'banned_user ( banned_id INTEGER AUTO_INCREMENT NOT NULL, PRIMARY KEY(banned_id), login_attempts INTEGER, ip TEXT, session_id TEXT, time INTEGER, user INTEGER ) ENGINE=InnoDB;' if ( ! $this->db->query($user_table . ' ' . $files_table . ' ' . $banned_user_table) ) failure("

Setting up the database failed.

", '500 Server Failure', false, "

CREATE TABLE FAILED"); } public function __destruct(){ $this->close(); } }