82 lines
1.9 KiB
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>';
|
|
}
|
|
|
|
?>
|