api/
ved/
admin/
modules/
gyar/
admin/
cron/
api/database.php1 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->password, self::$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();
}
}
?>