我有这个简单的代码可以正常工作:
$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
或
错误号码:1064 您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以获得正确的语法 靠近'1))= SOUNDEX('love')ORDER BY invDom.app'在第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文件名: C:\ xampp \ htdocs \ ci_test \ system \ database \ DB_driver.php行号: 33
分别。这两个代码在heidiSQL中运行良好但是..为什么我在codeigniter中得到这个错误?
答案 0 :(得分: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");
答案 1 :(得分: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