0

我有这个工作正常的简单代码:

$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 服务器版本相对应的手册,以在第 5 行 SELECT invDom.domain, sldPhr.phrase1 FROM domainmarket.inventory_domains invDom 附近的 ' 1) ) = SOUNDEX('love') ORDER BY invDom.app' 附近使用正确的语法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 中出现此错误?

4

2 回答 2

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");
于 2013-02-02T16:30:02.763 回答
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
于 2013-02-02T18:20:54.027 回答