-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpostgresql.php
71 lines (65 loc) · 1.66 KB
/
postgresql.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php
function init()
{
try {
$db = 'Tests';
$host = 'localhost';
$username = 'TestingSystem';
$password = 'postgresql';
$dsn = "pgsql:host=$host;dbname=$db";
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
$db = new PDO($dsn, $username, $password, $opt);
return $db;
} catch (PDOException $e) {
echo $e->getMessage();
}
}
function getTests($lang)
{
$db = init();
$sql = 'SELECT id, name, description FROM %s';
$stmt = $db->prepare(sprintf($sql, $lang));
$stmt->execute();
return $stmt;
}
function getAns($lang, $testname)
{
$db = init();
$sql = 'SELECT answer FROM %1$s WHERE name=\'%2$s\'';
$stmt = $db->prepare(sprintf($sql, $lang, $testname));
$stmt->execute();
return $stmt->fetch(PDO::FETCH_ASSOC)["answer"];
}
function clearHistory()
{
$db = init();
$sql = 'TRUNCATE TABLE history';
$stmt = $db->prepare($sql);
$stmt->execute();
}
function getHistory()
{
$db = init();
$sql = 'SELECT * FROM history';
$stmt = $db->prepare($sql);
$stmt->execute();
return $stmt;
}
function addToHistory($ip, $score, $name)
{
$db = init();
$sql = 'INSERT INTO history("ip", "score", "test_name") values (\'%1$s\', \'%2$s\', \'%3$s\')';
$stmt = $db->prepare(sprintf($sql, $ip, $score, $name));
$stmt->execute();
}
function deleteTest($subject, $id)
{
$db = init();
$sql = 'DELETE FROM %1$s WHERE id=%2$s';
$stmt = $db->prepare(sprintf($sql, $subject, $id));
$stmt->execute();
}