Home >Backend Development >PHP Tutorial > php用mysqli模块连数据库Fatal error: Call to a member function query() 。解决思路

php用mysqli模块连数据库Fatal error: Call to a member function query() 。解决思路

WBOY
WBOYOriginal
2016-06-13 13:11:081396browse

php用mysqli模块连数据库Fatal error: Call to a member function query() 。。。。
出现了这个错误:Fatal error: Call to a member function query() on a non-object in D:\wamp\www\bills\model\UserDB.class.php on line 24
代码如下:

PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
<?php class Database
    {
        var $mysqli;
        var $showError;
        
        public function _construct($configFile="config.inc.php")
        {
            require_once($configFile);
            $this->mysqli=new mysqli($dbhost,$dbuser,$dbpwd,$dbname);
            if(mysqli_connect_errno())
            {
                echo "物品数据库连接失败!";
            }
        }
        public function close()
        {
            if($this->mysqli)
                $this->mysqli->close();
            $this->mysqli=FALSE;
        }
        public function _destruct()
        {
            $this->close();
        }
    }
    class UserDB extends Database
    {
        public function queryUserByName($name)
        {
            $query="SELECT * FROM Users WHERE name='".$name."'";
            if ($result=$this->mysqli->query($query))  //此处提示出错!!
                return true;
            else 
                return false;
        }



然后在另一个页面里调用上面的类对象:
PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
<?php function __autoload($className)
    {
        include_once "../model/".$className.".class.php";
    }
    $udb=new UserDB();   //明明初始化了,可是到类里面就出错?
    $idb=new ItemsDB();   
    echo "jinlaile";
//    if(isset($_COOKIE("userInfo")))
//    {
//        $userInfo=unserialize($_COOKIE("userInfo"));
//    }
    switch($_GET["action"])
    {
        case "register":
            
            $lvalue=$_POST;
            $rtmp=$udb->queryUserByName($lvalue["name"]);
            echo "alert";
            if($rtmp)  //这个名字没有注册
            {
                $rusers=new User($lvalue);
                if($udb->addUser($rusers))
                {
                    setcookie("start",0);
                    setcookie("userInfo",serialize($rusers));
                    setcookie("username",$rusers->name);
                    header("Location:../view/index.php");
                }
                else 
                    header("Location:../view/errors.php?value=tianjia");
            }
            break;
       }




------解决方案--------------------
public function __construct($configFile="config.inc.php") //两个下划线
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn