From e2e66e5ebb845f96703fbdacabfd0b75b29b705c Mon Sep 17 00:00:00 2001
From: Horus3
Date: Thu, 18 Sep 2014 14:19:56 +0200
Subject: class vfsdb
---
public_html/class/mysql.php | 111 ++++++++++++++++++++++++++++++++++++++------
1 file changed, 96 insertions(+), 15 deletions(-)
(limited to 'public_html/class/mysql.php')
diff --git a/public_html/class/mysql.php b/public_html/class/mysql.php
index b2d2983..d38fc2c 100644
--- a/public_html/class/mysql.php
+++ b/public_html/class/mysql.php
@@ -1,28 +1,109 @@
dbhost=$dbhost;
- $this->dbuser=$dbuser;
- $this->dbname=$dbname;
- $this->dbpassword=$dbpassword;
- $this->dbprefix=$dbprefix;
+ public function __construct(){
+ return true;
}
public function open(){
try {
- $this->db = new mysqli($this->dbhost, $this->dbuser, $this->dbpassword, $this->dbname);
+ $this->db = new mysqli(DBHOST, DBUSER, DBPASSWORD, DBNAME);
} catch (Exception $e){
- echo $e->getMessage();
- exit;
+ 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();
}
}
--
cgit v1.2.3