SQL-Syntaxerrors MariaDB-serverversion für die richtige Syntax in der Nähe von 'WHERE ID = 4' in Zeile 1

Ich habe diese SQL Zeile:

 $sql = "SELECT ID, ListStID, ListEmail, Title FROM $entry_database WHERE ID = '". $ReqBookID ."'"; $result = mysqli_query($conn, $sql); 

Wie Sie sehen können, wähle ich die ID eines Eintrags, ListStID, ListEmail und Title Column aus, wenn ID einer characterfolge (oder Text) entspricht, die vom Benutzer in einem Formular angegeben wird.

Alles ist in Ordnung, und ich bekomme keinen Syntaxerrors, wenn ich den Code schreibe (ich benutze eine Code-Editor-Software. Wenn ich es jedoch online benutze, erhalte ich diesen Fehler:

Fehler: SELECT ID, ListStID, ListEmail, Titel FROM WHERE ID = '4' Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer MariaDB-server-Version entspricht, für die richtige Syntax in der Nähe von 'WHERE ID =' 4 '' in Zeile 1

Ich bin sehr neu in PHP, und ich bin mir sicher, dass ich entweder extra "oder" hinzufüge, also würde ich es wirklich schätzen, wenn Sie mir bei diesem Problem helfen könnten. Ich habe die Antworten für ähnliche Fragen versucht, aber noch keinen Erfolg.

UPDATE 1:

Also danke an alle, die darauf hingewiesen haben, dass ich den $ entry_database Fehler behoben habe, und es funktioniert jetzt richtig.

Vielen Dank für Ihre Bemühungen.

Solutions Collecting From Web of "SQL-Syntaxerrors MariaDB-serverversion für die richtige Syntax in der Nähe von 'WHERE ID = 4' in Zeile 1"

Sie haben eine leere Variable $entry_database . Wie Sie irrtümlich sehen: ListEmail, Title FROM WHERE ID zwischen FROM und WHERE sollte Name der Tabelle sein. Richtige Syntax von SELECT:

 SELECT columns FROM table [optional things as WHERE/ORDER/GROUP/JOIN etc] 

was auf deine Weise sollte werden:

 SELECT ID, ListStID, ListEmail, Title FROM some_table_you_got WHERE ID = '4' 

Sie vermissen Ihren databasenamen:

 $sql = "SELECT ID, ListStID, ListEmail, Title FROM ".$entry_database." WHERE ID = ". $ReqBookID ."; 

Und stellen Sie sicher, dass $ entry_database nicht null oder leer ist:

 var_dump($entry_database); 

Beachten Sie auch, dass Sie $ ReqBookID nicht benötigen, als wäre es ein Int.

Weisen Sie der variables $ entry_database den Tabellennamen vorher zu:

 $entry_database = "my_table"; // as an example $sql = "SELECT ID, ListStID, ListEmail, Title FROM $entry_database ...."; 

Bezüglich der WHERE-statement sollten Sie auch etwas über SQL Injection erfahren: http://php.net/manual/en/security.database.sql-injection.php

Machen Sie Ihr Skript sicherer.