Beim Versuch, mehrere MySQL-Abfragen in einem einzigen PHP-Skript auszuführen, kann es bei Benutzern zu einer wiederkehrenden Fehlermeldung kommen Syntaxfehler. Dieser Artikel befasst sich mit der Grundursache dieses Fehlers und bietet eine robuste Lösung, um ihn zu vermeiden.
Der Codeausschnitt, der den Syntaxfehler verursacht, sieht wie folgt aus:
<code class="php">$sql = "CREATE TEMPORARY TABLE tmp SELECT * FROM event_categoriesBU WHERE id = 1; UPDATE tmp SET id=100 WHERE id = 1; INSERT INTO event_categoriesBU SELECT * FROM tmp WHERE id = 100;";</code>
Die aufgetretene Fehlermeldung deutet darauf hin eine falsche Syntax in der Nähe der Verkettung mehrerer Abfragen innerhalb der $sql-Variablen. Um dieses Problem zu lösen, ist es wichtig, die Abfragen zu trennen, anstatt sie miteinander zu verketten.
Ein besserer Ansatz besteht darin, jede Abfrage einzeln zu durchlaufen und sicherzustellen, dass jeder Schritt erfolgreich ausgeführt wird, bevor mit dem nächsten fortgefahren wird. Dies kann mit dem folgenden Code erreicht werden:
<code class="php">$queries = [ "CREATE TEMPORARY TABLE tmp SELECT * FROM event_categoriesBU WHERE id = 1", "UPDATE tmp SET id=100 WHERE id = 1", "INSERT INTO event_categoriesBU SELECT * FROM tmp WHERE id = 100" ]; foreach ($queries as $query) { $stmt = $conn->prepare($query); $stmt->execute(); }</code>
Durch die Übernahme dieses Ansatzes stellen Sie sicher, dass jede Abfrage unabhängig ausgeführt wird, wodurch das Risiko zusammengesetzter Fehler verringert wird. Erwägen Sie außerdem die Aktivierung von Ausnahmen, um den Prozess im Falle fehlgeschlagener Abfragen anzuhalten und so eine unkontrollierte Ausführung zu verhindern.
Es lohnt sich auch, über einen Wechsel zu PDO (PHP Data Objects) nachzudenken, da es eine größere Flexibilität und Anpassungsfähigkeit bei Datenbankinteraktionen bietet.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich einen Syntaxfehler, wenn ich mehrere MySQL-Abfragen in PHP ausführe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!