在学说 2 中,如何在使用 ORM 时防止 sql 注入?我在教义网站上找到了以下页面:http: //docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/security.html
然而,这是关于 dbal 而不是关于 ORM。
假设 $id 是发布值,使用下面的内容是否安全?
$entityManager->getRepository('Product')->find($id);
或者使用这样的命名参数创建查询是否更好:
// DQL Prepared Statements
$dql = "SELECT p FROM Product p WHERE p.id = ?1";
$query = $em->createQuery($dql);
$query->setParameter(1, $_GET['pid']);
$data = $query->getResult();
请注意,我不只是寻求是或否的答案,而是是否有一些权威文档可以确保这是可以的。