PHP(PDO), Datenbankreferenz wird verändert?
Ich wollte in PHP mit SQL etwas in eine datenbank eintragen und auslesen. Wenn ich die beiden Befehle wie unten gezeigt schreibe, wird der 2. Befehl nicht ausgeführt und der Code läuft nicht weiter. Wenn ich dann die Datei in der die Datenbankreferenz ist, erneut mit include() einfüge, geht es. Woran liegt das? Es wirkt irgendwie so als würde die Datenbankreferenz automatisch verändert werden, aber geht das überhaupt?
Referenz.php:
$db1_referenz = new PDO('mysql:host=HOST;dbname=NAME', 'BENUTZER', 'PASSWORT');
datei.php:
include('Referenz.php');
$SQL1 = "INSERT INTO Datenbank (spa1, spa2, id) VALUES (2, 4, NULL)";
$Anweisung1 = $db1_referenz->prepare($SQL1);
$Anweisung1->execute();
//Anweisung2 fuktioniert nur wenn ich erneut include('Referenz.php') schreibe
$Anweisung2 = $db1_refezenz->prepare("SELECT * FROM Datenbank WHERE spa1=1");
$Anweisung2->execute();
echo 'hallo';//hallo wird nicht ausgegeben, da das script bei der 2. Anweisung abbricht
Ich hoffe auf Hilfe
1 Antwort
Schreibe mal ini_set('display_errors',1); an den Anfang des Script. Ich habe die Befürchtung, das deine erste Anfrage einen Fehler (Exception) wirft und du nichts davon siehst. Der Fehlerzustand könnte dann auch im PDO-Objekt stehen...
Mache das DIng mit $Anweisung1->closeCursor() zu (oder mache unset($Anweisung1), bevor du das 2. startest. Wundere mich, dass der mysql Treiber nur ein offenes Statement kann...
naja, in dem original-Script sind halt mehrere Anweisungen in der $SQL1 eingetragen, wird wohl daran liegen.
Das geht nicht. mysqli hat ein multi_query, aber PDO soweit ich weiss nicht. Wenn es alles inserts sind: INSERT INTO Datenbank(a,b,c) VALUES (1,1,1),(2,2,2),(3,3,3) zum Kombinieren in einem Statement nehmen...
Danke schonmal im Vorraus, such seit ner Ewigkeit eine Möglichkeit die display-Errors zu aktivieren.
Ausgabe war: