dedlfix: Prepared Statement innerhalb Funktion ?

Beitrag lesen

echo $begrüßung;

Angenommen diese Select Abfrage kommt öfters im Code auf verschiedene Seiten vor. Könnte ich dann diese so als Prepared Statement z.b. in einer separaten Include Datei einfügen?
$dboSelectUser = $DBO->prepare("SELECT count(*) as usercount, usr, UserID FROM testuser WHERE usr= :usr AND pwd=AES_ENCRYPT(:pwd,'passwort')  GROUP BY usr, UserID" );
Und dann später auf den entsprechenden Seiten nur noch den Bind und das Execute aufrufen?

Jeder Request ist eigenständig zu betrachten. Include-Dateien machen ja nichts weiter, als den dortigen Code an der aufrufenden Stelle einzufügen. Du hast also bei jedem Request eine separate Datenbankverbindung. Und für diese muss das Statement jedes Mal neu präpariert werden. Die eigentlichen Vorteile von PS kommen im PHP-Umfeld kaum zum Tragen.[*] Meines Erachtens lohnt sich der Einsatz trotzdem. Der Text des Statements wird übersichtlicher als beim Zusammenstückeln von Teilstrings, und das Quotieren und Maskieren kann (und muss) man sich sparen.

Eine zusätzliche Maskierung oder Absicherung der übergebenen Variablen ist nicht mehr notwendig?

Das hab ich doch schon in einer früheren Antwort erklärt. Bei einem PS gehen Befehl und Daten[**] getrennte Wege. Die Daten müssen deshalb nicht für eine Übertragung in einem Befehlskontext als Daten gekennzeichnet werden.

[*] Persistente Vebindungen mal unbetrachtet gelassen. Die erfordern einen wesentlich höheren Verwaltungsaufwand seitens der Anwendung.
[**] jedenfalls die Daten, die du bindest. Für andere im Statement befindliche Daten gelten die üblichen Quotier- und Maskierregeln.

echo "$verabschiedung $name";