PDO-vorbereitete Anweisungen: Wiederverwendung benannter Platzhalter
Bei der Arbeit mit PDO kann es wünschenswert sein, benannte Platzhalter in einer vorbereiteten SQL-Abfrage wiederzuverwenden. Dies ist jedoch aufgrund der Einschränkungen der PDO::prepare-Funktion von PHP nicht möglich.
Gemäß der PDO-Dokumentation „können Sie einen benannten Parametermarker mit demselben Namen nicht zweimal in einer vorbereiteten Anweisung verwenden.“ Das bedeutet, dass, wenn Sie versuchen, denselben benannten Platzhalter mehrmals in Ihrer Abfrage zu verwenden, wie zum Beispiel:
SELECT :Param FROM Table WHERE Column = :Param
...das zweite Vorkommen des „:Param“-Platzhalters durch einen eindeutigen Platzhalter ersetzt wird Name durch die Funktion PDO::prepare. Wenn Sie Ihren Wert mit PDO::bindValue(":Param") an den Platzhalter „:Param“ binden, wird der Wert nur für das erste Vorkommen des Platzhalters festgelegt. Das zweite Vorkommen bleibt ungebunden, was zu einem Fehler beim Ausführen der Abfrage führt.
Daher ist es nicht möglich, benannte Platzhalter in einer vorbereiteten SQL-Abfrage mithilfe von PDO wiederzuverwenden. Wenn Sie denselben Wert in Ihrer Abfrage mehrmals wiederholen müssen, können Sie entweder Positionsplatzhalter (z. B. „?“, „:1“ usw.) verwenden oder mehrere vorbereitete Anweisungen mit unterschiedlichen Platzhalternamen erstellen.
Das obige ist der detaillierte Inhalt vonKönnen von PDO vorbereitete Anweisungen benannte Platzhalter wiederverwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!