我如何调用存储过程(使用zf2,doctrine 2)?

0 mysql stored-procedures doctrine-orm zend-framework2

为什么它不起作用?我怎么称呼存储过程?

$rsm = new \Doctrine\ORM\Query\ResultSetMappingBuilder($this->objectManager);
$query = $this->objectManager->createNativeQuery('call `ftemplate_setcell`(:t, :col, :row, :p, :r, :v)', $rsm)->
setParameters($this->data);  
$query->Execute();
$this->objectManager->flush();
Run Code Online (Sandbox Code Playgroud)

Moh*_*din 5

要执行存储过程或函数,可以使用连接本身执行以下操作:

$conn = $this->getServiceManager()->get('doctrine.entitymanager.orm_default')->getConnection();
$stmt = $conn->prepare($storedProcedureSQL);
$stmt->bindParam(':param1', $param1);
$stmt->bindParam(':param2', $param2);
$stmt->execute();
Run Code Online (Sandbox Code Playgroud)

如果你有一个输出参数,你可以通过以下绑定获得它:

$stmt->bindParam(':outputParam', $outputParam, \PDO::PARAM_INPUT_OUTPUT, 32);
Run Code Online (Sandbox Code Playgroud)

执行语句后,您可以使用$outputParam保存函数或过程输出参数值的变量.