Sixtens hemsida Uppgifter Blogg Om

VED House bokningssystem

Gå till sida

Källkod

api/

database.php

api.php

ved/

monthBookingData.php

openingHoursException.php

bookingData.php

dayTimeframes.php

bookings.php

admin/

revokeToken.php

authorization.php

login.php

modules/

vedDatabase.php

utility.php

gyar/

log.php

auth/

revokeToken.php

authorization.php

login.php

station/

settings.php

log.php

modules/

gyarDatabase.php

databaseConnection.php

database.php

utility.php

credentials.json

weather/

latest.php

old.php

admin/

index.html

changeTimetable.html

login.html

js/

login.js

modules.js

admin.js

header.js

changeTimetable.js

cron/

vedClearExpiredTokens.php

api/database.php

1 lines
<?php
# database.php
# Fil som sköter anslutning till databas, samt metoder för att komma åt datan på ett enklare sätt.

class DatabaseConnection
{
    
# Ansluter till databas via PDO.
    
public static $options = array(
        
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'",
        
PDO::ATTR_ERRMODE,
        
PDO::ERRMODE_EXCEPTION,
        
PDO::ATTR_EMULATE_PREPARES,
        
false
    
);
    public 
$host;
    public 
$username;
    public 
$password;
    public 
$databaseName;

    public 
$pdo;

    public function 
__construct($databaseName$username$password$host "server1.serverdrift.com")
    {
        
$this->databaseName $databaseName;
        
$this->username $username;
        
$this->password $password;
        
$this->host $host;
    }

    public function 
connect()
    {
        
# Här etablerar vi anslutningen när vi skapar en ny instans av DatabaseConnection.
        
$host $this->host;
        
$db $this->databaseName;
        
$dsn "mysql:host=$host;dbname=$db";
        
$this->pdo = new PDO($dsn$this->username$this->passwordself::$options);
    }

    private function 
execute($sql$params null): PDOStatement
    
# Privat funktion som används av query och queryAll. Exekverar en SQL-sats.
    
{
        
$stm $this->pdo->prepare($sql);
        if (isset(
$params))
            
$stm->execute($params);
        else
            
$stm->execute();
        return 
$stm;
    }

    public function 
query($sql$params null): mixed
    
# Gör en query och kör fetch.
    
{
        return 
$this->execute($sql$params)->fetch(PDO::FETCH_ASSOC);
    }

    public function 
queryAll($sql$params null): array
    
# Gör en query och kör fetchAll.
    
{
        return 
$this->execute($sql$params)->fetchAll(PDO::FETCH_ASSOC);
    }

    public function 
getLastId(): bool|string
    
# Ger den sista PK-id som skapades på databasen.
    
{
        return 
$this->pdo->lastInsertId();
    }
}
?>