为什么它不起作用?我如何调用存储过程?
$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();
答案 0 :(得分:5)
要执行存储过程或函数,您可以使用连接本身执行以下操作:
$conn = $this->getServiceManager()->get('doctrine.entitymanager.orm_default')->getConnection();
$stmt = $conn->prepare($storedProcedureSQL);
$stmt->bindParam(':param1', $param1);
$stmt->bindParam(':param2', $param2);
$stmt->execute();
如果您有输出参数,可以通过以下绑定获取它:
$stmt->bindParam(':outputParam', $outputParam, \PDO::PARAM_INPUT_OUTPUT, 32);
执行语句后,您可以使用保存函数或过程输出参数值的变量$outputParam
。