Example #1
0
 public function Create(\Database $db)
 {
     if ($db == null) {
         $db = new Database();
     }
     //create the table
     $db->createField(EventTable::Id, "Varchar(40)", "PRIMARY KEY");
     $db->createField(EventTable::Privacy, "Varchar(50)", "Not Null");
     $db->createField(EventTable::Status, "int", "DEFAULT 0");
     $db->createField(EventTable::CreatorId, "Varchar(40)", "NOT NULL");
     $db->createField(EventTable::Title, "Varchar(50)", "NOT NULL");
     $db->createField(EventTable::Venue, "Varchar(40)", " Not null");
     $db->createField(EventTable::CreateDate, "Varchar(40)", "NOT NULL");
     $db->createField(EventTable::Description, "Text", "");
     $db->createField(EventTable::StartDate, " Varchar(40)", "NOT NULL");
     $db->createField(EventTable::Going, "int", "default 0");
     $db->createField(EventTable::SeachableKeywords, "Text", "");
     $db->createField(EventTable::CurrencyCountry, "Varchar(50)", "");
     $db->createField(EventTable::Image, " Varchar(50)", "");
     $db->createField(EventTable::Fees, "DOUBLE(16,2)", "default 0.0");
     //$db->createFields(EventTable::StartTime, "Varchar(40)", "NOT NULL");
     $db->createField(EventTable::Duration, "Varchar(50)", "Not Null");
     $db->createField("FULLTEXT KEY " . EventTable::Title, "(" . EventTable::Title . "," . EventTable::Description . "," . EventTable::SeachableKeywords . "," . EventTable::Venue . ")", "");
     $db->createTable(EventTable::TableName);
 }
Example #2
0
 public function Create(\Database $db)
 {
     $db->createField(TableAttendance::EVENT_ID, "Varchar(40)", "NOT NULL");
     $db->createField(TableAttendance::USER_ID, "Varchar(40)", "NOT NULL");
     $db->createField("CONSTRAINT pk_event_goer ", "PRIMARY KEY (" . TableAttendance::EVENT_ID . "," . TableAttendance::USER_ID . ")", "");
     $db->createTable(TableAttendance::TableName);
 }
Example #3
0
 /**
  * @return int
  */
 public function upgrade()
 {
     $change_column_num = 0;
     $table_name = $this->getTableName();
     $columns = $this->getDBColumns();
     $index_columns = $this->getIndexColumns();
     $reference_columns = $this->getDBReferenceColumn();
     if ($this->db->checkTableExists($table_name)) {
         $results = $this->db->getTableColumns($table_name);
         $results_index = $this->db->getTableIndex($table_name);
         //$results_foreignkey = $this->db->getTableForeignKey($table_name);
         $add_columns = array();
         $add_index_columns = array();
         $change_columns = array();
         $delete_columns = array();
         $delete_indexs = array();
         $delete_foreignkey = array();
         $columns_keys = array_keys($columns);
         foreach ($columns as $k => $v) {
             if (isset($results[$k])) {
                 if (!$v->isEqual($results[$k])) {
                     $change_columns[$k] = $v;
                 }
             } else {
                 $add_columns[$k] = $v;
             }
         }
         foreach ($results as $k => $v) {
             if (!isset($columns[$k])) {
                 $delete_columns[$k] = $v;
             }
         }
         foreach ($index_columns as $k => $v) {
             if (isset($results_index[$k])) {
                 //$change_columns[$k] = $v;
             } else {
                 $add_index_columns[$k] = $v;
             }
         }
         foreach ($results_index as $k) {
             if ($k == "PRIMARY") {
                 continue;
             }
             if (preg_match('/^(.+_fk)$/', $k, $matchs)) {
                 if (!preg_match('/^(.+)_(.+_fk)$/', $matchs[1], $mt) || !isset($reference_columns[$mt[2]])) {
                     $delete_foreignkey[$k] = $k;
                 }
                 continue;
             }
             if (!isset($index_columns[$k])) {
                 $delete_indexs[$k] = $k;
             }
         }
         // update
         foreach ($delete_foreignkey as $k) {
             if ($this->db->dropForeignKey($table_name, $k) && $this->db->affectedRows() > 0) {
                 $change_column_num++;
             }
         }
         foreach ($delete_columns as $k => $v) {
             if ($this->db->alterTableDrop($table_name, $k) && $this->db->affectedRows() > 0) {
                 $change_column_num++;
             }
         }
         foreach ($delete_indexs as $k => $v) {
             if ($this->db->alterTableDropIndex($table_name, $k) && $this->db->affectedRows() > 0) {
                 $change_column_num++;
             }
         }
         foreach ($change_columns as $k => $v) {
             if ($this->db->alterTableChange($table_name, $k, $v, $k) && $this->db->affectedRows() > 0) {
                 $change_column_num++;
             }
         }
         foreach ($add_columns as $k => $v) {
             $current_key = array_search($k, $columns_keys);
             if ($this->db->alterTableAdd($table_name, $k, $v, $current_key > 0 ? $this->db->escapeColumn($columns_keys[$current_key - 1]) : "FIRST") && $this->db->affectedRows() > 0) {
                 $change_column_num++;
             }
         }
         foreach ($add_index_columns as $k => $v) {
             if ($this->db->alterTableAddIndex($table_name, $v->generateName(), $v->getFields()) && $this->db->affectedRows() > 0) {
                 $change_column_num++;
             }
         }
         // update callback
         $this->modelUpdate();
     } else {
         if ($result = $this->db->createTable($table_name, $columns, $this->table_options) && $this->db->affectedRows() > 0) {
             $change_column_num++;
         }
         // update callback
         $this->modelUpdate();
     }
     return $change_column_num;
 }
$site_config_path = "../application/config/config.php";
$dbConfigPath = "../application/config/database.php";
$redirect_url = isset($_SERVER['HTTPS']) && $_SERVER['HTPPS'] == 'on' ? 'https' : 'http';
$redirect_url = "://" . $_SERVER['HTTP_HOST'];
$redirect_url = str_replace(basename($_SERVER['SCRIPT_NAME']), '', $_SERVER['SCRIPT_NAME']);
$style_url = $redirect_url;
if (!empty($_POST)) {
    require_once 'includes/config.php';
    require_once 'includes/database.php';
    $config = new Config();
    $db = new Database();
    if ($config->checkPostData($_POST)) {
        //        if (!$db->createDatabase($_POST)) {
        //            $error = "The database could not be created, please verify your settings.";
        //        } else
        if (!$db->createTable($_POST)) {
            $error = "The database tables could not be created, please verify your settings.";
        } else {
            if (!$db->createAdmin($_POST)) {
                $error = "The admin details could not be saved. Please verify.";
            } else {
                if (!$config->writeConfig($_POST)) {
                    $error = "The configuration file could not be written, \n                    please chmod the files to 0777";
                } else {
                    if (!$config->createExtraction($_POST['base_url'])) {
                        $error = "The extraction js file could not be written, \n                    please chmod the files to 0777";
                    }
                }
            }
        }
        if (!isset($error)) {
Example #5
0
<?php

include '../common/Database.class.php';
$dbHelper = new Database();
$database = "contactdb";
$tbl_member = "member";
$sql = 'CREATE DATABASE IF NOT EXISTS contactdb';
$dbHelper->createDatabase($database, $sql);
$sql = 'CREATE TABLE IF NOT EXISTS  member ( ' . 'id int(10) UNSIGNED NOT NULL AUTO_INCREMENT, ' . 'email varchar(255) NOT NULL UNIQUE, ' . 'password int(10) NOT NULL, ' . 'PRIMARY KEY (id) ' . ') ENGINE=InnoDB DEFAULT CHARSET=latin1';
$dbHelper->createTable($database, $tbl_member, $sql);
Example #6
0
 /**
  * database connection test.
  */
 public function test_database_connection()
 {
     $name = "test_database_connection";
     $db = new Database();
     test($db->getDatabaseObject());
     if ($db->tableExists($name)) {
         $db->dropTable($name);
     }
     // table exists
     test($db->tableExists($name) == FALSE);
     $db->createTable($name);
     test($db->tableExists($name));
     // quote
     // @Attention 반드시 아래의 quote 가 통과를 해야 한다.
     $ret_str = $db->quote("str");
     test($ret_str == "'str'", '', 'Quote failed...');
     $ret_str = $db->quote("st'r");
     test($ret_str == "'st''r'", '', 'Quote failed...');
     // table drop
     $db->dropTable($name);
     test($db->tableExists($name) == FALSE);
 }
Example #7
0
                echo 'Found ' . count($useless) . ' useless columns in existing table : ' . implode(', ', $useless) . "\n";
                foreach ($useless as $column) {
                    Database::removeTableColumn($table, $column);
                }
            }
            echo 'Check column format' . "\n";
            foreach ($required_columns as $column) {
                if (in_array($column, $missing)) {
                    continue;
                }
                // Already created with the right format
                $problems = Database::checkTableColumnFormat($table, $column, $datamap[$column], function ($message) {
                    echo "\t" . $message . "\n";
                });
                if ($problems) {
                    echo 'Column ' . $column . ' has bad format, updating it' . "\n";
                    Database::updateTableColumnFormat($table, $column, $datamap[$column], $problems);
                }
            }
        } else {
            echo 'Table is missing, create it' . "\n";
            Database::createTable($table, $datamap);
        }
        echo 'Done for table ' . $table . "\n";
    }
    echo 'Everything went well' . "\n";
    echo 'Database structure is up to date' . "\n";
} catch (Exception $e) {
    $uid = $e instanceof LoggingException ? $e->getUid() : 'no available uid';
    die('Encountered exception : ' . $e->getMessage() . ', see logs for details (uid: ' . $uid . ') ...');
}
Example #8
0
 /**
  * Update database
  */
 public static function updateStructure()
 {
     $class = static::getClassName();
     Logger::info('Updating ' . $class . ' database structure');
     $datamap = static::getDataMap();
     $table = static::getDBTable();
     // Check if table exists
     Logger::info('Look for table ' . $table);
     if (Database::tableExists($table)) {
         Logger::info('Table found, check columns');
         $existing_columns = Database::getTableColumns($table);
         Logger::info('Found ' . count($existing_columns) . ' columns in existing table : ' . implode(', ', $existing_columns));
         $required_columns = array_keys($datamap);
         Logger::info('Found ' . count($required_columns) . ' columns in required table : ' . implode(', ', $required_columns));
         $missing = array();
         foreach ($required_columns as $c) {
             if (!in_array($c, $existing_columns)) {
                 $missing[] = $c;
             }
         }
         if (count($missing)) {
             Logger::info('Found ' . count($missing) . ' missing columns in existing table : ' . implode(', ', $missing));
             foreach ($missing as $column) {
                 Database::createTableColumn($table, $column, $datamap[$column]);
             }
         }
         $useless = array();
         foreach ($existing_columns as $c) {
             if (!in_array($c, $required_columns)) {
                 $useless[] = $c;
             }
         }
         if (count($useless)) {
             Logger::info('Found ' . count($useless) . ' useless columns in existing table : ' . implode(', ', $useless));
             foreach ($useless as $column) {
                 Database::removeTableColumn($table, $column);
             }
         }
         Logger::info('Check column format');
         foreach ($required_columns as $column) {
             if (in_array($column, $missing)) {
                 continue;
             }
             // Already created with the right format
             $problems = Database::checkTableColumnFormat($table, $column, $datamap[$column], function ($message) {
                 Logger::info("\t" . $message);
             });
             if ($problems) {
                 Logger::info('Column ' . $column . ' has bad format, updating it');
                 Database::updateTableColumnFormat($table, $column, $datamap[$column], $problems);
             }
         }
     } else {
         Logger::info('Table is missing, create it');
         Database::createTable($table, $datamap);
     }
     Logger::info('Done for ' . $class);
 }
Example #9
0
 /**
  * Create a new table.
  * The table will have a single field - the integer key ID.
  * @param string $table Name of table to create.
  */
 static function createTable($table)
 {
     return DB::$globalConn->createTable($table);
 }