Не могу получить набор результатов, когда я использую 2, где заявления в DQL - PullRequest
0 голосов
/ 10 февраля 2011

I.m используя ORM Doctrine 1.2, и я получаю это сообщение об ошибке:

Необработанное исключение «Doctrine_Connection_Mysql_Exception» с сообщением «SQLSTATE [HY093]: неверный номер параметра: смешанные именованные и позиционные параметры»

И метод, в котором написан DQL:

public function SearchComboBothDates($searchOptionType,$searchValue,$dateFrom,$dateTill)
{
     $result =  $this->createQuery()
                    ->from("Orders o")
                    ->innerJoin("o.Contractants c")
                    ->innerJoin("c.Persons p")
                    ->innerJoin("p.Addresses a")
                    ->innerJoin("o.Resellers r")
                    ->innerJoin("r.Companies cp")
                    ->innerJoin("o.Cars ca")
                    ->innerJoin("ca.CarTypeScopes cts")
                    ->innerJoin("cts.CarTypes ct")
                    ->innerJoin("ct.CarBrands cb")
                    ->innerJoin("o.Users u")
                    ->innerJoin("o.OrderTypes ot")                      
                    ->where("o.".$searchOptionType." LIKE :searchvalue", array(':searchvalue' => "%".$searchValue."%"))
                    ->andWhere("o.order_date BETWEEN ? AND ? ", array($dateFrom, $dateTill))
                    ->execute();    
    return $result;
}

Я уверен, что '$ searchOptionType, $ searchValue, $ dateFrom, $ dateTill' установлены правильно.

Пожалуйста, дайте мне что-нибудь, с чем можно поработать, чтобы решить эту проблему.

Фер.

1 Ответ

1 голос
/ 10 февраля 2011

Попробуйте это;следует избегать смешивания двух типов параметров:

public function SearchComboBothDates($searchOptionType,$searchValue,$dateFrom,$dateTill)
{
     $result =  $this->createQuery()
                    ->from("Orders o")
                    ->innerJoin("o.Contractants c")
                    ->innerJoin("c.Persons p")
                    ->innerJoin("p.Addresses a")
                    ->innerJoin("o.Resellers r")
                    ->innerJoin("r.Companies cp")
                    ->innerJoin("o.Cars ca")
                    ->innerJoin("ca.CarTypeScopes cts")
                    ->innerJoin("cts.CarTypes ct")
                    ->innerJoin("ct.CarBrands cb")
                    ->innerJoin("o.Users u")
                    ->innerJoin("o.OrderTypes ot")                      
                    ->where("o.".$searchOptionType." LIKE ?", "%".$searchValue."%")
                    ->andWhere("o.order_date BETWEEN ? AND ? ", array($dateFrom, $dateTill))
                    ->execute();    
    return $result;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...