sql >> Base de Datos >  >> RDS >> Mysql

Procedimientos almacenados, MySQL y PHP

@michal kralik:desafortunadamente, hay un error con la API MySQL C que usa PDO, lo que significa que ejecutar su código como se indicó anteriormente con algunas versiones de MySQL da como resultado el error:

Puede ver el informe de error en bugs.mysql.com . Se ha corregido para la versión 5.5.3+ y 6.0.8+.

Para solucionar el problema, necesitaría separar los parámetros de entrada y salida, y usar variables de usuario para almacenar el resultado de esta manera:

$stmt = $dbh->prepare("CALL sp_takes_string_returns_string(:in_string, @out_string)");
$stmt->bindParam(':in_string', 'hello'); 

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

// fetch the output
$outputArray = $this->dbh->query("select @out_string")->fetch(PDO::FETCH_ASSOC);

print "procedure returned " . $outputArray['@out_string'] . "\n";