2014-03-04 150 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。

相关问题