-1

Please forgive me, I am fairly new to programming.

Basically, I am trying to run a SQL statement without making it susceptible to SQL Injections

I tried running my code but it is having issues here:

$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();

I am trying to use the Doctrine QueryBuilder in this guideline: https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/query-builder.html

Any help will be much appreciated

  • “having issues here” What is the issue? Any error-messages or -codes? Is there a database-connection? Are all models defined? etc. – feeela Feb 10 '21 at 01:29
  • https://symfony.com/doc/current/doctrine.html#querying-with-the-query-builder – Arleigh Hix Feb 10 '21 at 01:42

1 Answers1

0
  • For Your Solution

    $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();
    
  • You can do a little bit improvement for Evolution Reutilisation , Clean code & Best practices

  1. In UserRepository

     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();
    
     }
    
  2. in controller

     $pattern ="You pattern her";
    
     $manager    = this->getDoctrine()->getManager();
     $users     = $manager->getRepository('AppBundle:User')->findUsersLikePattern($pattern);
    
iraouf
  • 173
  • 10