我正在使用xampp
和Windows 7
测试运行良好的程序,
但是当我使用Ubuntu
(mysql
,php
,apache
使用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($查询)) {
不产生错误。 但现在我无法使用通常有用的用户名和密码登录。
需要另一个建议兄弟。
答案 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