Ich möchte, dass mein SQL Befehl grundsätzlich lautet: SELECT * FROM tabelle
Falls eine Kondition erfüllt ist, soll dazu ein WHERE hinzugefügt werden, der Befehl würde also nun lauten: SELECT * FROM tabelle WHERE eintrag = irgendwas
Probiert mit:
$befehl="SELECT \* FROM tabelle";
if(kondition){$befehl+="WHERE eintrag = irgendwas";}
$reponse = $datenbank-\> query($befehl);
while($daten= $reponse-\>fetch()) // Linie 47
{
...
}
Resultat: Fatal error: Call to a member function fetch() on a non-object in C:\Users…\index.php on line 47
Ich möchte, dass mein SQL Befehl grundsätzlich lautet: SELECT
* FROM tabelle
Falls eine Kondition erfüllt ist, soll dazu ein WHERE
hinzugefügt werden, der Befehl würde also nun lauten: SELECT *
FROM tabelle WHERE eintrag = irgendwas
An dieser Stelle wurde ja das fehlende Leerzeichen bereits angedeutet.
$reponse = $datenbank-> query($befehl);
while($daten= $reponse->fetch()) // Linie 47
Die Fehlermeldung bezieht sich auf $response. In dieser Variablen steckt kein Objekt und somit ist es auch nicht möglich mittels des Aufrufs ->fetch() auf die Methode zuzugreifen, weil diese nicht existiert. Ohne deine Datenbank-Klasse näher zu kennen würde ich also vermuten, dass es so aussehen müsste:
while ($daten = $datenbank->fetch ($response))
Ich gehe nämlich davon aus, dass die Methode fetch im Datenbank-Objekt vorhanden ist und als Übergabe einen Response erwartet. DIeser Response steckt in $response und ist vom Typ RESOURCE, wie es üblicherweise von mysql_query zurückgegeben wird.
{
…
}
Resultat: Fatal error: Call to a member function fetch() on a
non-object in C:\Users…\index.php on line 47