微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Doctrine querybuilder 不适用于我在 PHP 中的 SQL 语句

如何解决Doctrine querybuilder 不适用于我在 PHP 中的 SQL 语句

请原谅我,我对编程还很陌生。

基本上,我试图运行 sql 语句而不使其容易受到 sql 注入的影响

我尝试运行我的代码,但这里有问题:

$manager = this->getDoctrine()->getManager();
$builder = $manager->getRepository('AppBundle:User')->createqueryBuilder('u');
$builder->select('*')
        ->from('home_users','u')
        ->where(u.username LIKE :pattern');
$query = $builders->getQuery();
$query->setParameter('pattern',"%pattern%");
$users = $query->getResult();

我正在尝试使用本指南中的 Doctrine QueryBuilder:https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/query-builder.html

任何帮助将不胜感激

解决方法

  • 为您提供解决方案

    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
  • 您可以对 Evolution Reutilisation、干净代码和最佳实践进行一些改进

  1. 在用户存储库中

    $pattern ="You pattern her";
    
    $manager      = this->getDoctrine()->getManager();
    $userRepo     = $manager->getRepository('AppBundle:User');
    $queryBuilder = $userRepo->createQueryBuilder('u');
    
    $queryBuilder->select('u')
          ->where('u.username LIKE :pattern')
          ->setParameter('pattern','%'.$pattern.'%');
    
    $users = $queryBuilder->getQuery()->getResult();
    
  2. 在控制器中

     public function findUsersLikePattern(string $pattern = null)
     {
         $queryBuilder = $this->createQueryBuilder('u')
                               ->select('u');
    
         if ($pattern) {
             $queryBuilder
                 ->where('u.username LIKE :pattern')
                 ->setParameter('pattern','%' . $pattern . '%');
    
         }
    
         return $queryBuilder->getQuery()->getResult();
    
     }
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。