PHP-Code in pdo_1/01_step/read.php

<?php
/*
require("class/FirstContact.class.php");
$superhero = new FirstContact();
$resArr = $superhero -> readMethod();
*/
?>
<!DOCTYPE html>
<html lang="de">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Erstes Beispiel: Lesen mit PDO</title>
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Roboto+Condensed&family=Roboto:ital,wght@0,400;0,500;1,400&display=swap" rel="stylesheet">
    <link rel="stylesheet" href="/css/styles.css">
</head>
<body>
    <div id="container">
        <h1>Erstes Beispiel: Lesen mit PDO</h1>
        <p>Wir schreiben eine eigene Klasse, die PDO verwendet, deshalb ist es logisch, <strong>eine Subklasse von PDO</strong> zu entwerfen.</p>

        <h2>Die Verbindung zur Datenbank herstellen</h2>
        <p>Die Verbindung zur Datenbank stellt der Konstruktor der PDO-Klasse (Superklasse) her. Wir müssen diesen explizit aufrufen.</p>

        <h3>DSN (erster Parameter)</h3>
        <ul>
            <li>Der erste Parameter für den Konstruktor ist ein sog. DSN (Wikipedia: <a href="http://de.wikipedia.org/wiki/Data_Source_Name" target="_blank">DSN</a></strong>).</li>
            <li>Jedes Datenbank-System braucht einen spezifischen DSN, in diesem Beispiel verweden wir den DSN für MySQL.</li>
            <li><strong>Tipp für alle Nicht-Angelsachsen</strong>, also komische Menschen, die mit UTF-8 in Datenbanken arbeiten müssen:<br>
            <strong>Gib im DSN auch gerade den charset an:</strong><br>
            <code>$dsn = "mysql:host=localhost;dbname=test;charset=utf8";</code><br>
            Je nach Konfiguration deines Entwicklerstacks ist das nicht nötig, es schadet aber nichts, wenn das machst.</li>
            <li><strong>8ung Stolperstein:</strong> Wenn du &quot;localhost&quot; im DSN angibst, geht die Klasse davon aus, dass  die <strong>Standardports der Datenbank</strong> verwendet werden. Hast du in deiner Entwicklungsumgebung jedoch andere Ports definiert, musst du die <strong>IP-Nummer</strong> (meistens <code>host=127.0.0.1</code>) plus den <strong>Port</strong> <code>(port=####)</code> angeben.<br>
            Je nach Konfiguration deines Entwicklerstacks ist dieser Schritt nicht nötig!</li>
        </ul>

        <h3>PDO-Optionen für die Verbindungsaufnahme (vierter Parameter)</h3>

        <ul>
		    <li>Wenn du wie hier mit try und catch (s.o.) arbeiten möchtest, ist diese Option für die Fehlerbehandlung die sinnvollste:<br />
	        <code>PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION</code></li>
		    <li>Mit dieser Option werden die Resultate in Form von assoziativen Arrays retour kommen. In den meisten Fällen ist das der effizienteste Weg, die Resultate in HTML auszugeben:<br />
            <code>PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC</code></li>
	    </ul>


        <div class="output">
            <table class="bordered">
		    <tr>
                <th>Vorname</th>
                <th>Nachname</th>
                <th>Strasse</th>
                <th>Nr</th>
                <th>PLZ</th>
                <th>Ort</th>
		    </tr>
            <?php
                /*
                foreach ($resArr as $row) {
                    echo "<tr>\n";
                    echo "<td>".$row['Vorname']."</td>\n";
                    echo "<td>".$row['Nachname']."</td>\n";
                    echo "<td>".$row['Strasse']."</td>\n";
                    echo "<td>".$row['Nr']."</td>\n";
                    echo "<td>".$row['PLZ']."</td>\n";
                    echo "<td>".$row['Ort']."</td>\n";
                    echo "</tr>\n";
                }
                */
            ?>
	        </table>
        </div>
    </div>
</body>
</html>