server/php/basic/resources/library/dbFunctions.php
author durandn
Thu, 21 Apr 2016 15:18:19 +0200
changeset 605 13d355fd09bf
parent 444 19f0b7803aed
permissions -rw-r--r--
updated uri to allow optional trailing slash on single resource URIs (django automatic redirects don't carry over the Authorization header that can sometimes be needed, for instance with OAuth)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
442
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
<?php
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
require_once(realpath(dirname(__FILE__) . "/../config.php"));
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
function getDb() {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
    global $config, $renkan_table;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
    $db = new PDO(
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
        $config['db']['dsn'], $config['db']['user'], $config['db']['password'],
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
        array(PDO::ATTR_EMULATE_PREPARES => false,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
    );
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
    $querycheck = "SELECT 1 FROM ". RENKAN_PROJECT_TABLE ." LIMIT 1;";
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
    $create_table = false;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
    try {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
        $res = $db->query($querycheck);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
        if($res === false) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
            $create_table = true;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
    catch(PDOException $e) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
        $create_table = true;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
    if($create_table === true) {
444
19f0b7803aed add schema version + dataloaders to ensure data migrations + small correction for php server exmple + a readme for the php server example
ymh <ymh.work@gmail.com>
parents: 442
diff changeset
    29
        $db->query("CREATE TABLE ". RENKAN_PROJECT_TABLE ." ( id CHAR(36) NOT NULL PRIMARY KEY, title VARCHAR(2048) NULL, renkan TEXT NULL);");
442
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
    return $db;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
}
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
function insertProject($renkanId, $title, $renkan) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
    $insertSql = "INSERT INTO ". RENKAN_PROJECT_TABLE ." (id, title, renkan) VALUES (:renkanId, :title, :renkan)";
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
    $values = ['renkanId' => $renkanId, 'title' => $title, 'renkan' => $renkan];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
    return execStmt($insertSql, $values);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
}
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
function updateProject($renkanId, $title, $renkan) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
    $updateSql = "UPDATE ". RENKAN_PROJECT_TABLE ." SET id = :renkanId, title = :title, renkan = :renkan;";
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
    $values = ['renkanId' => $renkanId, 'title' => $title, 'renkan' => $renkan];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
    return execStmt($updateSql, $values);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
}
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
function deleteProject($renkanId) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
    $deleteSql = "DELETE FROM ". RENKAN_PROJECT_TABLE ." WHERE id = :renkanId;";
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
    $values = ['renkanId' => $renkanId];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
    return execStmt($deleteSql, $values);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
}
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
function selectProject($renkanId) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
    $selectSql = "SELECT id, title, renkan FROM ". RENKAN_PROJECT_TABLE ." WHERE id = :renkanId;";
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
    $values = ['renkanId' => $renkanId];
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
    return execStmt($selectSql, $values)->fetchAll(PDO::FETCH_ASSOC);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
}
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
function listProjects() {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
    $selectSql = "SELECT id, title, renkan FROM ". RENKAN_PROJECT_TABLE .";";
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
    return execStmt($selectSql, array())->fetchAll(PDO::FETCH_ASSOC);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
}
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
function execStmt($sql, $values) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
    $stmt = getDb()->prepare($sql);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
    $stmt->execute($values);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
    return $stmt;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
}