Mit pdo in php mit der gespeicherten Prozedur
Habe ich eine einfache stored procedure in der MySQL-Datenbank:
DELIMITER $$
CREATE DEFINER=`vidhu`@`%` PROCEDURE `test`(var_datain TEXT)
BEGIN
SELECT var_datain;
END
Beim Aufruf dieser Prozedur in mysql-workbench es gibt die Daten, die ich in:
Nun, wenn ich es aufrufen PHP mit pdo bekomme ich eine Fehlermeldung:
Fatal error: Cannot pass parameter 2 by reference in C:/apache......(3rd line)
Hier ist mein php code:
$db = new PDO(DSN, DBUSER, DBPASS);
$stmt = $db->prepare("CALL test(?)");
$stmt->bindParam(1, 'hai!', PDO::PARAM_STR);
$rs = $stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo $result[0];
Welche Linie? Ich sehe Sie nicht als Referenz übergeben
die Zeile mit $stmt->bindParam(1, 'hai!', PDO::PARAM_STR);
die Zeile mit $stmt->bindParam(1, 'hai!', PDO::PARAM_STR);
InformationsquelleAutor Krimson | 2012-08-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie bindValue statt bindParam.
Wenn Sie bindParam, es bindet die variable bereitgestellt, um die parameter, nicht den Wert der Variablen.
So, wenn Sie tun:
Ist es tatsächlich ausgeführt wird mit 6 anstatt 5. Um dies zu tun, die Methode muss eine Referenz auf die variable. Sie können einen Verweis auf ein literal, so bedeutet dies, dass bindParam kann nicht verwendet werden, mit Literale (oder alles, was Sie nicht haben kann eine Referenz auf).
Dann:
InformationsquelleAutor Corbin
Der folgende code funktioniert für telefonieren ohne Anweisung vorbereiten!
InformationsquelleAutor Armando Rodriguez Arguijo