Ich bin neu in PDO. Ich versuche zu verstehen.Separate Verbindung von PDO
Was ist der beste Weg, um die Verbindung vom Rest mit PDO zu trennen?
Zum Beispiel. Ich habe diesen Code, der gut funktioniert:
<?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "podcast";
try {
$conn = new PDO("mysql:host=$servername; dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully <br>";
$sql = "SELECT podcast, text
FROM bookmarks
WHERE data = :data";
$statement = $conn->prepare($sql);
$data = 1;
$statement->bindValue(':data', $data);
$statement->execute();
echo $statement->rowCount() . " records SELECTED successfully <br>";
$rows = $statement->fetchAll();
foreach($rows as $row){
echo $row['podcast'] . '<br>';
echo $row['text'] . '<br>';
}
}
catch(PDOException $e) {
echo "Error: " . $e->getMessage();
}
$conn = null;
Es könnte nützlich sein, die Verbindung in einer separaten Datei zu haben. Ich habe das versucht und es funktioniert gut, aber ich bin mir nicht sicher, ob es der beste Weg ist, es zu tun. Ist es in Ordnung, den Try-Catch nur mit der Verbindung zu haben?
index.php:
include("includes/connetion.php")
$sql = "SELECT podcast, text
FROM bookmarks
WHERE data = :data";
$statement = $conn->prepare($sql);
$data = 1;
$statement->bindValue(':data', $data);
$statement->execute();
echo $statement->rowCount() . " records SELECTED successfully <br>";
$rows = $statement->fetchAll();
foreach($rows as $row){
echo $row['podcast'] . '<br>';
echo $row['text'] . '<br>';
}
$conn = null;
connection.php:
<?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "podcast";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// $conn = new PDO("sqlite:/Applications/MAMP/db/sqlite/podcast", $username, $password); //Lite
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully <br>";
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
?>
Nun ... Es ist nicht so schlimm, aber Sie werden keine Fehler finden, die von einer verpfuschten Abfrage zurückgegeben werden - nur bestimmte Verbindungsfehler. Wenn in einer Abfrage ein Fehler auftritt, müssen Sie entweder eine separate Fehlerfunktionalität erstellen oder jeder Abfrage try/catch-Blöcke hinzufügen. – junkfoodjunkie
Wenn Sie keine Verbindung zur Datenbank herstellen können, was dann? Was macht der Rest Ihrer App? Warum lässt du es weiterhin unnötig laufen, nur um mehr Fehler auf der ganzen Linie zu erzeugen? ** Warum fangen Sie die Ausnahme? ** – deceze
@junkfoodjunkie was ist los mit Fehler nicht fangen? –