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)
要执行存储过程或函数,可以使用连接本身执行以下操作:
$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保存函数或过程输出参数值的变量.