The following files exists in this folder. Click to view.
database.php65 lines UTF-8 Unix (LF) 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
<?php
# Fil som sköter anslutning till databas, samt metoder för att komma åt datan på ett enklare sätt.
class DatabaseConnection
{
# Din kod för att ansluta till en databas. Rätt så självklar.
public static $host = "server1.serverdrift.com";
public static $user = "Intentionally removed by CSource";
public static $pwd = "Intentionally removed by CSource";
public static $db = "als070926os_slutprojekt";
public static $options = array(
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'",
PDO::ATTR_ERRMODE,
PDO::ERRMODE_EXCEPTION,
PDO::ATTR_EMULATE_PREPARES,
false
);
private $pdo;
public function __construct()
{
# Här etablerar vi anslutningen när vi skapar en ny instans av DatabaseConnection.
$host = self::$host;
$db = self::$db;
$dsn = "mysql:host=$host;dbname=$db";
try {
$this->pdo = new PDO($dsn, self::$user, self::$pwd, self::$options);
} catch (Exception $e) {
die("<p>Could not connect to the database:<br/>{$e}</p>");
}
}
private function execute($sql, $params = null): PDOStatement
# Privat funktion som används av query och queryAll. Exekverar en SQL-sats.
{
//echo "<p>{$sql}</p>";
$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();
}
}
$db = new DatabaseConnection(); # Etablerar en anslutning till databasen.
# Detta ser även till att alla filer som kör require på denna fil skapar en databasanslutning.
?>