加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – Symfony 2 – Doctrine 2 – Native Sql – 删除查询

发布时间:2020-12-13 18:19:01 所属栏目:PHP教程 来源:网络整理
导读:而不是逐个删除我的实体 $this-em-remove($price); 我想执行本机SQL查询来删除我的所有实体. 这是我尝试过的: $sqlQuery = "delete from mytable where mytable.fieldone_id = ".$fieldoneid." and mytable.fieldtwo_id = ".$fieldtwoid.";";$query = $this
而不是逐个删除我的实体
$this->em->remove($price);

我想执行本机SQL查询来删除我的所有实体.

这是我尝试过的:

$sqlQuery = "delete from mytable where mytable.fieldone_id = ".$fieldoneid." and mytable.fieldtwo_id = ".$fieldtwoid.";";

$query = $this->getEntityManager()->createNativeQuery($sqlQuery);

$query->execute();

它返回以下错误:

Catchable fatal error: Argument 2 passed to DoctrineORMEntityManager::createNativeQuery() must be an instance of DoctrineORMQueryResultSetMapping,none given

它希望我传递ResultSetMapping,但它是一个删除查询…

谁能请教我怎么做?

在我看来,我使用一种更简单的执行本机SQL查询的方式.尝试这样的事情(我也使用PDO方法在查询中包含变量,这更安全):
$sql = "delete from mytable where mytable.fieldone_id = :fieldoneid and mytable.fieldtwo_id = :fieldtwoid";
$params = array('fieldoneid'=>$fieldoneid,'fieldtwoid'=>$fieldtwoid);

$em = $this->getDoctrine()->getManager();
$stmt = $em->getConnection()->prepare($sql);
$stmt->execute($params);
// if you are doing a select query,fetch the results like this:
// $result = $stmt->fetchAll();

这对我很有用,希望它有所帮助

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读