Я не уверен, как правильно извлечь параметры OUT из хранимой процедуры в Symfony, используя доктрину.
Моя хранимая процедура выглядит так:
PROCEDURE procedure_name (IN val1 NUMERIC(10), ... , OUT out1 NUMERIC(10), OUT out2 NUMERIC(10), OUT out3 NUMERIC(10))
Я пробовал:
$sql = "CALL procedure_name('$val1', ... , @out1, @out2, @out3)";
$con = Doctrine_Manager::connection();
$statement = $con->prepare($sql);
$statement->execute();
$result = $con->query("SELECT @out1, @out2, @out3")->fetch_object();
Но это приводит к ошибке «У вас должен быть хотя бы один компонент, указанный в поле from».
Есть идеи?
Решение:
$sql = "CALL procedure_name('$val1', ... , @out1, @out2, @out3)";
$con = Doctrine_Manager::getInstance()->getCurrentConnection();
$statement = $con->prepare($sql);
$statement->execute();
$statement->closeCursor();
$result = $con->fetchAssoc("SELECT @out1, @out2, @out3");
Других решений пока нет …