在ubuntu上使用xampp错误运行:致命错误:在非对象上调用成员函数rowCount()

时间:2015-09-21 05:00:43

标签: php mysql xampp

我正在使用xamppWindows 7测试运行良好的程序, 但是当我使用Ubuntumysqlphpapache使用apt-get上传到服务器时,会出现错误

  

致命错误:在第56行的/var/www/siarsip/class/user.php中的非对象上调用成员函数rowCount()

这里代码剪断了:

function getAllUser(){
		$query=$this->db1->query("SELECT a.user_id,a.username,a.password,a.NIP,a.role,b.category,a.input_date,a.last_update FROM users as a RIGHT JOIN user_categories as b ON a.role=b.usercat_id ORDER BY role");
		$jml_data=$query->rowCount();
		if($jml_data>=1){
			$hasil=$query->fetchAll(); //line 56
			return $hasil;
		}else{
			return $jml_data;
		}
	}

我试图将第56行更改为:

if(!empty($query) AND $jml_data > 0) {

仍然无法正常工作。

更新: 使用@cjriii代码,我更新第56行使用它:

if(is_object($query))

{   {    代码在这里     }

}

现在没有错误,我试图登录产生同样的错误 “致命错误:在第74行的/var/www/siarsip/class/user.php中的非对象上调用成员函数rowCount()”

	function loginUser($username,$password){
		$password_md5=md5($password); 
		$query=$this->db1->query("SELECT*FROM users WHERE username='$username' AND password='$password_md5'");
		if(is_object($query))
{
		$hasil=$query->rowCount(); //line 74
		return $hasil;
	}
}

我再次将代码插入第74行 如果(is_object($查询)) {

不产生错误。 但现在我无法使用通常有用的用户名和密码登录。

需要另一个建议兄弟。

1 个答案:

答案 0 :(得分:0)

两件事:

在调用方法之前测试$ query是否为对象。那'错误来自哪里。

其次,不要测试!empty($ query),而是尝试测试is_object($ query)。

if(is_object($query))
{
    $jml_data = $query->rowCount();
    if($jml_data >= 1)
    {
        //rest of your code here
    }
    else
        return $jml_data;
}

编辑:

请检查空()的文档:您的调用可能返回空的有效值以返回false。

http://php.net/empty http://php.net/manual/en/function.is-object.php