我在symfony2中调用存储过程时出现以下错误
SQLSTATE [HY000]:常规错误 500内部服务器错误 - PDOException
我在conroller中有以下代码:
public function indexAction($name) {
$em = $this->getDoctrine()->getEntityManager();
$query = $em->createNativeQuery('CALL sp_demoproc_insert ()', new ResultSetMapping());
$result = $query->execute();
$em->flush();
return $this->render('HomeHomeBundle:Default:index.html.twig', array('name' => $name));
}
和存储过程如下,
DROP PROCEDURE IF EXISTS tmp.sp_demoproc_insert;
CREATE PROCEDURE tmp。sp_demoproc_insert
()
INSERT INTO tmp
。details
(
id
,
name
)
价值观(
'11','xyz'
);
答案 0 :(得分:0)
我在尝试调用存储过程时遇到了同样的错误。 然后我看到this page 所以我尝试了这个,它对我有用:
$ em-> getConnection() - > executeUpdate('CALL YourStoredProc()');
答案 1 :(得分:0)
选中https://github.com/doctrine/orm/issues/5497#issuecomment-162372454
createNativeQuery()仅用于SELECT语句。
将$ em-> getConnection()-> executeUpdate()用于UPDATE,DELETE或INSERT语句。
这是一个文档问题。