0

当我在 symfony2 中调用存储过程时出现以下错误

SQLSTATE[HY000]:一般错误 500 内部服务器错误 - PDOException

我在控制器中有以下代码:

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));
}

存储过程如下,

如果存在则删除过程 tmp.sp_demoproc_insert; 创建过程 tmp。sp_demoproc_insert() 插入tmpdetails( id, name ) 值 ('11', 'xyz' );

4

2 回答 2

0

我在尝试调用存储过程时遇到了同样的错误。然后我看到了这个页面 所以我尝试了这个,它对我有用:

$em->getConnection()->executeUpdate('CALL YourStoredProc ()');

于 2012-11-27T22:35:08.357 回答
0

检查https://github.com/doctrine/orm/issues/5497#issuecomment-162372454

createNativeQuery() 仅适用于 SELECT 语句。

对 UPDATE、DELETE 或 INSERT 语句使用 $em->getConnection()->executeUpdate()。

这是一个文档问题。

于 2020-05-01T00:04:49.833 回答