Fehler abfangen in Datenbank-Abfrage
Folgender PHP-Code funktioniert nicht wie gewünscht:
PHP-Code:
$objDSOL = $objDSOLDB->prepare("SELECT * FROM content")
->execute();
if($objDSOL)
{
echo '<b>'.$objDSOL->numRows . ' Nachrichten';
}
else
{
echo "Tabelle nicht vorhanden";
}
Die echos werden leider nicht ausgegeben, weil die Datenbankklasse vorher die Verarbeitung abbricht:
Zitat:
request.CRITICAL: Uncaught PHP Exception Doctrine\DBAL\Exception\TableNotFoundException: "An exception occurred while executing 'SELECT * FROM content': SQLSTATE[42S02]: Base table or view not found: 1146 Table 'db.content' doesn't exist"
Fehler 1146 ist also "Tabelle existiert nicht". In diesem Fall will ich die Tabelle automatisch anlegen. Soweit komme ich aber nicht. Gibt es hier eine Lösung?
Ich habe auch schon mit try und catch versucht. In dem Fall arbeitet das Skript weiter und ich bekomme ein großes Exception-Objekt. An der Stelle müßte ich den Fehlercode (1146) ermitteln (welche Funktion?), dann die Tabelle anlegen und dann weitermachen mit dem Code (also zurück zur Zeile nach der Abfrage). Aber auch hier komme ich nicht weiter.