Sorgu değil mysql_query yoluyla phpMyAdmin çalışır

1 Cevap php

Stumped. Neden bir sorgu phpMyAdmin iş değil, bir MAMP ortamında? Ben, MAMP 0 sonuç döndü kopyaladı ve phpMyAdmin yapıştırılan ve aynı sorgu beklenen sonucu verir sorgu, dışarı yankılandı ettik.

select
   c.id
from
    (select id, business_id 
     from coup 
     where match(name) against ('$search')
    ) as c
    left join
       (select business_id 
        from bus 
        where match(name, category, subcat) against ('$search')
       ) as b on
        c.business_id = b.business_id 
    inner join bloc z on
        c.business_id = z.business_id
where
    z.zip = '$zip'

Bu kodda görünen aşağıdaki satırları

$q = "select c.id from (select id, business_id from ".TBL_COUPONS." where match(name) against ('".$search."')) as c left join (select business_id from ".TBL_BUSINESS." where match(name, category, subcat) against ('".$search."')) as b on c.business_id = b.business_id inner join ".TBL_BLOCATION." as l on c.business_id = l.business_id where l.zip = '".$zip."'";
$rs = mysql_query($q) or die(mysql_error());
$rec = array();
while(($row = mysql_fetch_array($rs)) !== FALSE ){
    $rec[] = $row[0];   
}

echo $ q gösterir:

select c.id from (select id, business_id from coupons where match(name) against ('walk')) as c left join (select business_id from business where match(name, category, subcat) against ('walk')) as b on c.business_id = b.business_id inner join buslocations as l on c.business_id = l.business_id where l.zip = '91326'

1 Cevap

Benim durumumda, bu sorunun farklı verileri içeren iki farklı veritabanlarını kullanarak konum olmasıdır% 80 olasılıkla.

Farklı ne öğrenebilirim kadar basit testlerin içine sorguyu ayrıştırmak gerekir.

Her iki ortamlarda aşağıdaki sorguları deneyin:

SELECT COUNT(*) FROM coupons;
SELECT COUNT(*) FROM coupons WHERE MATCH(name) AGAINST ('walk');

SELECT COUNT(*) FROM business;
SELECT COUNT(*) FROM business WHERE MATCH(name, category, subcat) AGAINST ('walk');

SELECT COUNT(*) FROM bloc;
SELECT COUNT(*) FROM bloc WHERE zip = '91326';

Bu sorgu bir veya daha fazlasının farklı olduğu sonucu olasıdır. Bu farklı veri ile iki farklı veritabanları var demektir. Ya aynı MySQL örneği üzerinde iki şemalar, yoksa iki ayrı MySQL örneği. Eğer bir ya da diğer arayüzüne bağlayan düşünüyorum veritabanına bağlanırken değildir.