2014-03-04 132 views
0

正如我笨項目完成後,從本地服務器將文件傳輸到直播服務器,這裏的一切似乎是正確的,致命錯誤:調用一個成員函數NUM_ROWS()非對象

http://royal.skylabsinc.in/

上然而,顯示了error..Pls幫我在這... 這裏的屏幕截圖

" Fatal error: Call to a member function num_rows() on a non-object in /home2/skylabsi/public_html/royal/system/libraries/Session.php on line 215 "

+0

您需要爲您的問題提供更多上下文,提供錯誤的代碼部分,您嘗試過什麼等。 – aularon

+0

應用程序> config> autoload。PHP代碼如下$ autoload ['libraries'] = array('database','session');我們在上面的名字「session」中調用內置的「CI_Session」類 – Mithun

+0

我知道這是一個老問題,但我只是有類似的問題,這可能對某人有用。對我來說,問題是mysql數據庫中的sessions表損壞了,需要修復。 – Sarcastron

回答

1

/home2/skylabsi/public_html/royal/system/libraries/Session.php表明問題與會話做。

Call to a member function num_rows() on a non-object表明預期對象爲空,很可能是由數據庫中的錯誤查詢造成的。

當我第一次點擊鏈接時,我也能夠加載頁面,但刷新/重新訪問失敗。檢查一個不同的瀏覽器開始一個新的會話,得到同樣的東西。第一次加載沒問題,後面的加載沒有。這再次表明會議存在問題。

+0

會話在本地服務器上完美工作,但是當放到服務器上時..這顯示一個錯誤.. – Mithun

+0

我無法給出更多的沒有更多上下文的答案。什麼是代碼,你做了什麼,等等。 – DevShep

0

讓我猜測,你的本地服務器是windows,而live server是linux。如果是這樣,那麼很可能你已經在文件名中命名了你的模態,大小寫不同,類名&調用名稱。

類名必須首字母大寫,其餘的名稱必須小寫。確保你的類擴展了基類模型類。

文件名將是您的班級名稱的小寫版本。

+0

你的猜測是正確的,windows到linux ...我們使用內置的codeigniter會話,我們在自動加載配置文件中通過名稱「會話」調用會話。系統庫類名是「CI_Session」,這存儲在文件名「Session.php」 – Mithun

0

下面的代碼添加到類

private $CI; 

public function __construct() 
{ 
    $this->CI = &get_instance(); 
    $this->load->library('session'); 
    $this->load->database(); 
} 
+0

感謝您的解決方案:) – Mithun

0

非常快速和簡單的答案是:

請確保您有「CI_SESSION」如果你在設置$this->load->library('session');服務器數據庫中的表您的config/autoload.php

CREATE TABLE IF NOT EXISTS `ci_sessions` (
    `session_id` varchar(40) NOT NULL DEFAULT '0', 
    `ip_address` varchar(45) NOT NULL DEFAULT '0', 
    `user_agent` varchar(120) NOT NULL, 
    `last_activity` int(10) unsigned NOT NULL DEFAULT '0', 
    `user_data` text NOT NULL, 
    PRIMARY KEY (`session_id`), 
    KEY `last_activity_idx` (`last_activity`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

,如果你使用CI_SESSION,那麼你必須有CI_SESSION表。

2

我有同樣的錯誤。您可以嘗試在數據庫中創建ci_session表。它解決了我的問題。

+0

這是一個偉大的指針,當你從一臺服務器遷移到另一臺時,也可能導致錯誤的數據庫憑據在這個錯誤。 –

0

雖然CI_SESSIONS表存在於數據庫中,但我也遇到了此錯誤。 解決方案是:

由於在我的實時服務器上我創建了數據庫用戶和數據庫,但我沒有分配用戶到數據庫,因此這是一個權限問題,並且我通過它連接的mysql用戶沒有有權讀取數據庫,因此有表CI_SESSIONS。

相關問題