2013-02-02 41 views
0

我有這個簡單的代碼工作正常:笨:複雜的MySQL選擇不工作了

$sQuery = $this->db->query("SELECT domain FROM domainmarket.inventory_domains"); 

但是當我使用這個

$sQuery = $this->db->query("SELECT 
           invDom.domain, 
           sldPhr.phrase1 
          FROM domainmarket.inventory_domains invDom 
           INNER JOIN lux.domain_info domInfo 
           ON invDom.domain = domInfo.domain 
           JOIN lux.sld_stats sldStats 
           ON domInfo.sld = sldStats.sld 
           JOIN lux.sld_phrase sldPhr 
           ON sldPhr.sld = sldStats.sld"); 

或本

$sQuery = $this->db->query("SELECT 
           invDom.domain, 
           sldPhr.phrase1 
          FROM domainmarket.inventory_domains invDom 
           INNER JOIN lux.domain_info domInfo 
           ON invDom.domain = domInfo.domain 
           JOIN lux.sld_stats sldStats 
           ON domInfo.sld = sldStats.sld 
           JOIN lux.sld_phrase sldPhr 
           ON sldPhr.sld = sldStats.sld 
          WHERE SOUNDEX(SUBSTRING_INDEX(invDom.domain, ".", 1)) = SOUNDEX('love') 
          ORDER BY invDom.appraised_price DESC"); 

它已經給出了這個錯誤:

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to 
allocate 32 bytes) in 
C:\xampp\htdocs\ci_test\system\database\drivers\mysql\mysql_result.php 
on line 152 

Error Number: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' 1)) = SOUNDEX('love') ORDER BY invDom.app' at line 5 SELECT invDom.domain, sldPhr.phrase1 FROM domainmarket.inventory_domains invDom INNER JOIN lux.domain_info domInfo ON invDom.domain = domInfo.domain JOIN lux.sld_stats sldStats ON domInfo.sld = sldStats.sld JOIN lux.sld_phrase sldPhr ON sldPhr.sld sldStats.sld WHERE SOUNDEX(SUBSTRING_INDEX(invDom.domain,, 1)) = SOUNDEX('love') ORDER BY invDom.appraised_price DESC Filename: C:\xampp\htdocs\ci_test\system\database\DB_driver.php Line Number: 33

分別。這兩個代碼在heidiSQL中工作正常,但爲什麼我在codeigniter中出現這個錯誤?

回答

0

這是一個引用問題。您將查詢包裝在"中,然後在查詢中使用它們。

$sQuery = $this->db->query(" 
SELECT invDom.domain, sldPhr.phrase1 FROM domainmarket.inventory_domains invDom 
INNER JOIN lux.domain_info domInfo ON invDom.domain = domInfo.domain 
JOIN lux.sld_stats sldStats ON domInfo.sld = sldStats.sld 
JOIN lux.sld_phrase sldPhr ON sldPhr.sld = sldStats.sld 
WHERE SOUNDEX(SUBSTRING_INDEX(invDom.domain, '.', 1)) = SOUNDEX('love') 
ORDER BY invDom.appraised_price DESC"); 
+0

哦!是!忽略了!非常感謝你! :) – Leah

0

而不是在查詢中使用雙逗號,因爲它是衝突的使用單個逗號。

SELECT 
    invDom.domain, 
    sldPhr.phrase1 
FROM domainmarket.inventory_domains invDom 
    INNER JOIN lux.domain_info domInfo 
    ON invDom.domain = domInfo.domain 
    JOIN lux.sld_stats sldStats 
    ON domInfo.sld = sldStats.sld 
    JOIN lux.sld_phrase sldPhr 
    ON sldPhr.sld = sldStats.sld 
WHERE SOUNDEX(SUBSTRING_INDEX(invDom.domain, '.', 1)) = SOUNDEX('love') 
ORDER BY invDom.appraised_price DESC