setup/index.php
author Markus Bröker <broeker.markus@googlemail.com>
Fri, 13 Nov 2015 22:14:54 +0100
changeset 19 95ee596c03c5
child 39 8b4f9c6136f4
permissions -rw-r--r--
Setup Dateien und initiales Datenbank Layout
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
19
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
     1
<?php
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
     2
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
     3
header('Content-Type: text/plain');
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
     4
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
     5
$cfg = array(
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
     6
    'dsn' => 'mysql:host=localhost;',
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
     7
    'config' => array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'),
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
     8
    'username' => 'root',
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
     9
    'password' => '',
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    10
);
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    11
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    12
require_once '../config/config.php';
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    13
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    14
use bfw\database\Database;
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    15
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    16
$db = Database::getInstance($cfg);
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    17
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    18
$dropSQLStatements = array(
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    19
    "DROP USER 'bfw'@'localhost'",
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    20
    "DROP DATABASE IF EXISTS bfw;",
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    21
);
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    22
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    23
$createSQLStatements = array(
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    24
    "CREATE DATABASE bfw CHARACTER SET utf8 COLLATE utf8_unicode_ci;",
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    25
    "CREATE USER 'bfw'@'localhost' IDENTIFIED BY 'bfw';",
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    26
    "GRANT ALL PRIVILEGES ON bfw.* TO 'bfw'@'localhost' WITH GRANT OPTION;",
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    27
);
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    28
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    29
foreach ($dropSQLStatements as $statement) {
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    30
    $status = $db->execute($statement);
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    31
    echo sprintf("%s\n", $statement);
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    32
}
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    33
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    34
foreach ($createSQLStatements as $statement) {
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    35
    $status = $db->execute($statement);
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    36
    echo sprintf("%s\n", $statement);
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    37
}
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    38
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    39
$handle = fopen(BFW_PATH . '/sql/init.sql', 'r');
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    40
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    41
$sql = "USE bfw;\n\n";
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    42
while (!feof($handle)) {
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    43
    $sql .= fgets($handle);
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    44
}
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    45
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    46
fclose($handle);
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    47
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    48
if ($db->execute($sql) == 0) {
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    49
    echo sprintf("%s", $sql);
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    50
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    51
    header('Location: /');
95ee596c03c5 Setup Dateien und initiales Datenbank Layout
Markus Bröker <broeker.markus@googlemail.com>
parents:
diff changeset
    52
}