CI boş veritabanı çıktı

2 Cevap php

Ben basit bir uygulama bina ve DB sonuç çıktı test etmek çalışıyorum. Ama ne yazık ki ben alıyorum tüm boyut 0 bir dizidir İşte denetleyici kod alıntı bulunuyor.:

$data['query'] = $this->db->query('SELECT role_id, role_privilege FROM role');
$this->load->view('welcome_message', $data);

Ve bir görünüm kod alıntı:

<?php
        echo count($query->result_array())."<br/>";
        foreach ($query->result() as $row){
            echo $row->role_id . '<br/>';
            echo $row->role_privilege . '<br/>';
        }
        echo 'Total result '.$query->num_rows();
    ?>

Ve ne olsun yanında:

0
Total result

Komut satırından sorguyu çalıştıran bir 2 sıralı çıkış verir. Birisi ben eksik ne işaret edebilir?

EDITED:
This issue is also discussed here .

EDITED:
Maybe some platform specific stuff (I really doubt that)? I'm running LAMP (php 5.3.2, mysql 5.1.37, apache 2.2.15).

EDITED:
This prints out a "Array ( )" string. My DB is 100% filled. I can say that for sure, because I did

INSERT INTO role(role_privilege) VALUES ('ROLE_MODERATOR');
INSERT INTO role(role_privilege) VALUES ('ROLE_USER');

ve sonra bir komut satırı üzerinden kontrol etti.

EDITED:
After I put this into my controller:

echo $this->db->last_query(); exit;

Ben önümüzdeki çıktı almak:

SELECT role_id, role_privilege FROM role

Ve ben gerekli kesin sql sorgusu var. Ne yazık ki sonuç boyutlu dizi o vardır.

2 Cevap

Peki, bu sorun burada temelde birini ilgili bir CI değil, ama garip bir şey CI bu hatayı izlemek değil olmasıdır. Burada ne olup bittiğini bulunuyor:

Ile-mysql-soket parametre ve php açıkçası my.cnf belirtilmemiş bir / tmp / mysql.sock (varsayılan bir) kullanmaya çalıştı gibi görünüyor - php kurarken ben belirtilmiş değil. Yani CI varolmayan bir sokete bağlamak için çalıştı. Bir php.ini değişen mysql params sorunu çözüldü.

Eğer bir hata almıyorum çünkü db erişim düzgün kurulmuş gibi Eh, bu sesler. Ben de tablo var demektir düşünüyorum. Ben size, komut satırından bu sorguyu koştu dedi biliyorum ama size aynı veri seti / sunucu / tablo erişiyor emin misiniz? Hiçbir garip sürüm ya da bir şey? Kayıtlar rol tabloda yok gibi geliyor. Kodunuzu doğru görünüyor Üzgünüz, sadece çırpınışların.

Nasıl yapıyor hakkında

SELECT * FROM role

ve daha sonra bir yaparak

print_r($query->result_array()); 

sizin görünümünde? Eğer doğru veri erişimini biliyorum böylece en azından sütun adlarını açığa çıkarmalıdır.

Bunu deneyin ve herhangi bir ayrıntı ile geri bildirir ve umarım bazı ipuçları tedarik edecek.