public function searchAdvertisements($advertisementSearchParameters, $dbConnection = null)
 {
     $advertisementsList = null;
     $preparedStatement = null;
     try {
         $advertisementSearchQuery = null;
         $advertisementIDQuery = null;
         if ($dbConnection == null) {
             $dbConnection = DatabaseUtilities::getDatabaseConnection();
         }
         $advertisementIDQuery = "SELECT DISTINCT AD.ADVERTISEMENT_ID FROM advertisement AD WHERE 1 = 1";
         $advertisementIDQuery .= AdvertisementSearchDao::getAdvertisementSearchWhereClause($advertisementSearchParameters);
         $advertisementSearchQuery = AdvertisementSearchDao::ADVERTISEMENT_SEARCH_SELECT;
         $advertisementSearchQuery .= " AND AD.ADVERTISEMENT_ID IN (" . $advertisementIDQuery . ")\n\t\t\t\t\t\t\t\t\t\t\t\tORDER BY AD.CREATED_DATE DESC\n\t\t\t\t\t\t\t\t\t\t\t\tLIMIT :pagingAmount OFFSET :startingPoint";
         $preparedStatement = AdvertisementSearchDao::getAdvertisementSearchPreparedStatement($advertisementSearchQuery, $advertisementSearchParameters, $dbConnection);
         //Add paging parameters.
         $startingPoint = 0;
         $currentPage = $advertisementSearchParameters->getVariable(SearchConstants::CURRENT_PAGE_ID);
         $pagingAmount = $advertisementSearchParameters->getVariable(SearchConstants::PAGING_AMOUNT_ID);
         if ($currentPage > 1) {
             $startingPoint = ($currentPage - 1) * $pagingAmount;
         }
         $pagingAmount = (int) $pagingAmount;
         $startingPoint = (int) $startingPoint;
         $preparedStatement->bindParam(":pagingAmount", $pagingAmount, PDO::PARAM_INT);
         $preparedStatement->bindParam(":startingPoint", $startingPoint, PDO::PARAM_INT);
         $preparedStatement->execute();
         while ($result = $preparedStatement->fetch()) {
             $advertisement = AdvertisementSearchDao::extractAdvertisementSearchObject($result);
             if ($advertisement !== null) {
                 $advertisementsList[] = $advertisement;
             }
         }
         $preparedStatement = null;
     } catch (Exception $ex) {
         echo $ex->getMessage();
         $advertisementsList = null;
     }
     $preparedStatement = null;
     return $advertisementsList;
 }