PDO nach Referenznotiz?

8

Dies:

%Vor%

ergibt dies:

  

Laufzeithinweis
Nur Variablen sollten übergeben werden   Referenz

obwohl es immer noch ausgeführt wird.

Dies:

%Vor%

läuft ohne Beanstandung.

Ich verstehe den Unterschied nicht?

    
Drew 21.07.2011, 03:06
quelle

4 Antworten

6

Der zweite Parameter von bindParam ist eine Variable Referenz . Da auf eine Rückgabe der Funktion nicht referenziert werden kann, erfüllt sie nicht genau die Anforderungen des Parameters bindParam (PHP arbeitet jedoch mit Ihnen zusammen und gibt nur eine Warnung aus).

Um eine bessere Idee zu bekommen, hier ist und Beispiel: Dieser Code wird die gleichen Ergebnisse wie Ihr zweites Beispiel produzieren:

%Vor%

Das ist mit einer Funktionsrückgabe nicht möglich.

    
cwallenpoole 21.07.2011, 03:12
quelle
9

Die Beschreibung von PDOStatement::bindParam() besagt, dass es eine PHP -Variable an eine Quesitonmark oder einen benannten Platzhalter bindet. Da Sie versuchen, die Methode einer Klasse zu übergeben (obwohl diese Methode einen Wert zurückgibt), ist sie immer noch kein Variablenname, daher die Warnung. Sie können PDOStatement::bindValue() betrachten, um Ihren Code zukunftssicher zu machen.

    
Tarek Fadel 21.07.2011 03:14
quelle
2

Wenn Sie vermeiden möchten, den Wert einer Variablen zuzuweisen, sollten Sie besser versuchen:

%Vor%

Wie andere bereits erwähnt haben, wird der Fehler verursacht, weil PDO :: statement- & gt; bindParam erwartet Param 2 soll eine Referenzvariable sein.

    
shxfee 21.07.2011 06:23
quelle
-1

Wenn Sie wirklich einen Wert anstelle eines Verweises binden möchten, können Sie das PDOStatement :: bindValue und dann wird der Code so aussehen:

%Vor%     
Jefferson Lima 19.04.2016 03:21
quelle

Tags und Links