Llamando al procedimiento almacenado con el parámetro Out usando PDO

He estado usando PDO por un tiempo y estoy refactorizando un proyecto para que use procs almacenados en lugar de SQL en línea. Recibo un error que no puedo explicar. Estoy usando PHP versión 5.3.5 y MySQL versión 5.0.7.

Sólo estoy tratando de obtener un proc almacenado básico con una salida para trabajar. Aquí está el proc almacenado:

DELIMITER //  
CREATE PROCEDURE `proc_OUT` (OUT var1 VARCHAR(100))  
BEGIN  
    SET var1 = 'This is a test';  
END //  

Aquí está el código que estoy usando para llamar al proceso, $ db es una instancia de PDO:

$stmt = $db->prepare("CALL proc_OUT(?)");
$stmt->bindParam(1, $return_value, PDO::PARAM_STR, 4000); 

    // call the stored procedure
    $stmt->execute();
    echo $returnvalue;

Simple verdad? Sin embargo, da como resultado el siguiente error:

exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1414 OUT or INOUT argument 1 for routine mydb.proc_OUT is not a variable or NEW pseudo-variable in BEFORE trigger

Si llamo al proc directamente así:

CALL proc_OUT(@res);
SELECT @res;

funciona como se esperaba, lo que me lleva a creer que hay un problema con la forma en que se lo llama con PHP, sin embargo, no puedo encontrar cuál es el problema. Estoy siguiendo las instrucciones enel manual Pero todavía estoy recibiendo este error. ¿Alguien podría sugerir lo que podría estar haciendo mal? Cualquier consejo sería muy apreciado. ¡Muchas gracias!

Respuestas a la pregunta(3)

Su respuesta a la pregunta