<?php
/*
 * Created on 2010-12-6
 *
 * To change the template for this generated file go to
 * Window - Preferences - PHPeclipse - PHP - Code Templates
 */
include './config/config.php';$mysqli = new mysqli(DB_HOST,DB_USER,DB_PASSWD,DB_NAME);
$mysqli->set_charset("gbk");if(mysqli_connect_errno()){ printf("Connect failed %s",mysqli_connect_error());
exit();
}$sql='select name,password from wb_user';
$result = $mysqli->query($sql);$bz=false;
while($row =$result->fetch_object()){
//var_dump($row);
if($row->name==$_POST['name'] && $row->password==$_POST['password']){ setCookie('name',$_POST['name'],time()+60*60);
setCookie('password',$_POST['password'],time()+60*60);
echo "登陆成功";
echo '<a href=index.php>页面跳转</a>';
$bz=true;
}
}if(!$bz){
echo "用户名或密码错误";
}
?>帮忙看看怎么  错在那啦!! 谢谢啦
Fatal error: Call to a member function fetch_object() on a non-object 

解决方案 »

  1.   

    $result = $mysqli->query($sql);
    $bz=false;
    while($row =$result->fetch_object()){=========================================
    $bz=false;
    if($result = $mysqli->query($sql))
    {
        while($row =$result->fetch_object()){
    ……
    ……
    ……
    }
      

  2.   

    很明显提示你调用的对象不存在!检查你的$result是否正确!然后你代码里很有明显的错误啊!
    while($row =$result->fetch_object()){
        //var_dump($row);
        if($row->name==$_POST['name'] && $row->password==$_POST['password']){        setCookie('name',$_POST['name'],time()+60*60);
            setCookie('password',$_POST['password'],time()+60*60);
            echo "登陆成功";
            echo '<a href=index.php>页面跳转</a>';
            $bz=true;
        }
    }循环中如果找到账号和密码都符合的,你没有break;终止循环.最后造成的结果很可能是$bz==false;
      

  3.   

    先判断下$result,然后再执行循环获取;
    if($result = $mysqli->query($sql))
    {
      while($row =$result->fetch_object()){
           xxxxxxxxxxxxxxxxxxxxxx//执行代码
           if(xxxx){
               xxxxxxxxxxxxxxxxx//执行代码
               break;
     
           }
           
      }
    }