-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdatabase.php
More file actions
64 lines (58 loc) · 1.94 KB
/
Copy pathdatabase.php
File metadata and controls
64 lines (58 loc) · 1.94 KB
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
<?php
class Database
{
protected $pdo = null;
public function __construct()
{
$dsn = "mysql:host=localhost";
$options = [
PDO::ATTR_EMULATE_PREPARES => false, // turn off emulation mode for "real" prepared statements
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, //turn on errors in the form of exceptions
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, //make the default fetch be an associative array
];
try
{
$this->pdo = new PDO($dsn, "root", "", $options);
$dbname = "anwbapi";
$this->pdo->query("CREATE DATABASE IF NOT EXISTS $dbname");
$this->pdo->query("use $dbname");
}
catch (Exception $e)
{
error_log($e->getMessage());
throw new Exception($e->getMessage());
}
$this->pdo->query("CREATE TABLE IF NOT EXISTS `Traffic` (
`ID` INT AUTO_INCREMENT NOT NULL,
`Road` varchar(50) NOT NULL,
`From_Location` varchar(100) NOT NULL,
`To_Location` varchar(100) NOT NULL,
`From_Loc_Lat` FLOAT,
`From_Loc_Lng` FLOAT,
`To_Loc_Lat` FLOAT,
`To_Loc_Lng` FLOAT,
`Distance` INT, # Distance in m
`Delay` INT, # Delay in seconds
`Reason` varchar(500),
`Valid_From` datetime,
`Valid_To` datetime,
`TrafficType` ENUM('Jam', 'Roadwork'),
`Polyline` varchar(5000),
PRIMARY KEY (`ID`))
CHARACTER SET utf8 COLLATE utf8_general_ci
");
}
public function executeQuery($query = "", $params = [])
{
try
{
$stmt = $this->pdo->prepare($query);
$stmt->execute($params);
return $stmt->fetchAll();
}
catch (Exception $e)
{
throw new Exception($e->getMessage());
}
}
}