linkvz/index.php

82 lines
1.9 KiB
PHP

<?php
// Versuch der Objektorientierung
class Link{
public $name;
public $url;
public function __construct($newName, $newUrl){
$this->name = $newName;
$this->url = $newUrl;
}
}
class dbLinkHandler
{
private $pdo;
public function __construct()
{
try
{
// Verbindung zur Datenbank herstellen
$this->pdo = new PDO('mysql:host=localhost;dbname=linkdb', 'linkdb', 'linkdb');
$this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Tabelle link erstellen, falls nicht vorhanden
$sql = 'CREATE TABLE IF NOT EXISTS link (
link_id BIGINT(18) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
link_url VARCHAR(30) NOT NULL,
link_name VARCHAR(30),
reg_date TIMESTAMP
)';
$this->pdo->exec($sql); // use exec() because no results are returned
}
catch(PDOException $e)
{
echo $sql . "<br>" . $e->getMessage();
}
}
public function saveLink($link)
{
$statement = $this->pdo->prepare('INSERT INTO link(link_url, link_name) VALUES (:link_url, :link_name)');
$statement->execute
([
':link_url' => $link->url,
':link_name' => $link->name
]);
}
public function getLinkList()
{
// Mit verschachtelten Arrays optimieren!! Array schlüssel id enthält array mit schlüssel link_id, link_name, etc (repräsentiert datensatz)
$list = array();
$sql = "SELECT * FROM link";
foreach ($this->pdo->query($sql) as $row)
{
$list[$row['link_name']] = $row['link_url'];
}
return $list;
}
}
// Main
$db = new dbLinkHAndler();
$link1=new Link("cloud.therealblue.de", "https://cloud.therealblue.de");
$db->saveLink($link1);
foreach($db->getLinkList() as $url => $name)
{
echo '<a href="'.$url.'" target="_blank">'.$name.'</a><br>';
}
?>