2016-02-15 28 views
0

我的PHP代碼是:主義查詢錯誤的捧場:字符串的預計結束,拿到「我」

 $company = $qb->select("c") 
        ->from("CRMBundle:TblCompanyDomain","cd") 
        ->join("cd.company","c") 
        ->leftJoin("CRMBundle:TblCompanyAddress", 
          "ca", 
          "WITH", 
          "ca.company = c") 
        ->join("ca.country","cc") 
        ->where($qb->expr()->andX(
         $qb->expr()->in("cd.domain",":domain"), 
         $qb->expr()->eq("c.channel",":channel_id") 
       )) 
        ->setParameters($parameters) 
        ->setMaxResults(1) 
        ->getQuery() 
        ->getOneOrNullResult(); 

端接收到DQL代碼:

SELECT 
    c 
FROM 
    CRMBundle:TblCompanyDomain cd 
    INNER JOIN cd.company c 
    LEFT JOIN CRMBundle:TblCompanyAddress ca WITH ca.company = c 
    INNER JOIN ca.country cc 
WHERE 
    cd.domain IN(:domain) AND 
    c.channel = :channel_id 

當我執行此查詢,我已收到此錯誤:

[Syntax Error] line 0, col 44: Error: Expected end of string, got 'I' 
enter code here 

我看不到任何語法錯誤。哪裏有問題?

我Symfony的版本:2.6.11

我的教訓版本:2.2

回答

0

我從註釋改爲陽明我的教訓ORM映射和修復問題。

我遇到過很多次相同的問題,並且瞭解真正的問題。當我用utf-8使用Doctrine註解時,這個問題就被解決了。可能是,原因是土耳其語上的utf-8。因爲較低的「我」charachter的資本是「我」而較低的「我」carachter的資本是「İ」。

0
SELECT 
    c 
FROM 
    CRMBundle:TblCompanyDomain cd 
    INNER JOIN cd.company c 
    LEFT JOIN CRMBundle:TblCompanyAddress ca WITH ca.company = c 
    INNER JOIN ca.country cc 
WHERE 
    cd.domain IN(:domain) AND 
    c.channel = :channel_id 

我認爲你需要c.something

+0

謝謝快速答覆 新DQL是 選擇C FROM CRMBundle:TblCompanyDomain CD INNER JOIN cd.companyÇLEFT JOIN CRMBundle:WITH ca.company = c.companyId INNER JOIN ca.country CC TblCompanyAddress CA WHERE cd.domain IN (:domain)AND c.channel =:channel_id 但我仍然得到相同的錯誤 –

+0

當這種事情發生時,最好的辦法是去除查詢的每個部分並找到失敗。 :-) – abdiel