Symfony 使用QueryBuilder表达式是否安全?
有几种方法可以创建相同的查询:Symfony 使用QueryBuilder表达式是否安全?,symfony,doctrine-orm,Symfony,Doctrine Orm,有几种方法可以创建相同的查询: $qb = $this->createQueryBuilder('u'); $qb ->select('COUNT(u.id)') ->where('u.email = :email')) ->setParameter('email', $email) ->getQuery(); 以及: 哪种情况更适合使用,哪种情况对于SQL注入更安全、更稳定?setParameter将使用预先准备好的语句,因此是安
$qb = $this->createQueryBuilder('u');
$qb
->select('COUNT(u.id)')
->where('u.email = :email'))
->setParameter('email', $email)
->getQuery();
以及:
哪种情况更适合使用,哪种情况对于SQL注入更安全、更稳定?
setParameter
将使用预先准备好的语句,因此是安全的,而$qb->expr()->eq()
不会。@Touki谢谢,但我如何确保第二个示例的安全?where($qb->expr()->eq('u.email','email'))->setParameter('e':email','email'))
?@Touki,我想它一定有用,谢谢!我尝试使用itI,强烈建议阅读本文,尤其是针对用户输入的安全和不安全API部分。
$qb = $this->createQueryBuilder('u');
$qb
->select('COUNT(u.id)')
->where($qb->expr()->eq('u.email', $email))
->getQuery();