【发布时间】:2017-08-16 09:31:58
【问题描述】:
我实际上有 2 个相关问题。我提出了 DQL 请求(她工作正常),但我的老板告诉我这是一个安全风险,我不得不改用 ORM。我觉得这很奇怪,我想知道为什么,但我找不到任何东西告诉我为什么这是一个安全风险。
所以我的第一个问题是你知道为什么吗?
这是请求:
$sql="SELECT v.id,v.codeVague, v.date_fin_ultime,c.distance,p.adresse1,p.code_postal,p.ville,m
FROM McInvestigatorBundle:Vague v
INNER JOIN McInvestigatorBundle:Enquete e WITH e.vague_id = v.id
INNER JOIN McInvestigatorBundle:Mission m WITH m.id = e.mission_id
INNER JOIN McInvestigatorBundle:Contrat c WITH c.id = m.contrat
INNER JOIN McInvestigatorBundle:User u WITH u.enqueteur_id = e.enqueteur_id
INNER JOIN McInvestigatorBundle:PointDeVente p WITH p.id = e.pdv_id
WHERE v.codeVague ='".$wave_code."'
AND e.type_id =".$type_id."
AND m.enqueteur_id=".$enq_id."
ORDER BY m.date_rea_prev ASC";
$results= $em->createQuery($sql)->getResult();
我的第二个问题是“最重要的”,我需要翻译我的请求以使用我的老板所说的 ORM。我考虑过使用查询生成器,但我什至不确定查询生成器是 ORM。是吗 ?如果不是,我需要使用什么方式来获得完整的 ORM?
【问题讨论】:
-
Doctrine\ORM\QueryBuilder绝对是您数据库的 ORM 接口。没有不完整的 ORM。虽然有一个数据库抽象层,doctrine/dbal库,在其之上构建了doctrine/orm。