doctrine2本机查询更新语句

| 如何在Doctrine 2中执行本地SQL查询,执行更新语句? EntityManager上的createNativeQuery方法需要第二个参数(ResultSetMapping)才能将结果集映射到Objects。 但是在更新(或插入或设置或...)时,没有resulset可以映射。 传递null或仅传递新的ResultSetMapping()都会产生错误。 仅本地SQL支持选择查询吗?     
已邀请:
        本质上与假货同上, 这从文档:   如果要执行本机的DELETE,UPDATE或INSERT语句   SQL API无法使用,并且可能会引发错误。采用   EntityManager#getConnection()访​​问本机数据库连接   并为这些查询调用executeUpdate()方法。 使用说明之一是可以从EntityManager中检索连接对象:
$conn = $entityManager->getConnection();
$rowsAffected = $conn->executeUpdate($sql, $params, $types);
    
        更新语句通常非常简单,因此您也可以使用正常的Doctrine2方法(即以编程方式更新实体并调用EntityManager :: flush()或使用DQL更新)。 话虽如此,如果您真的想使用普通的SQL,则总是可以这样进行: 使用Doctrine2创建连接时,请保留您获得的数据库连接对象: $ connection = \\ Doctrine \\ DBAL \\ DriverManager :: getConnection($ dbConfig-> toArray(),null,$ evm); 使用连接对象中的可用方法执行所需的任何SQL,例如: $ connection-> executeUpdate($ sql,$ params,$ types); $ connection-> exec($ sql); ...     

要回复问题请先登录注册