繁体   English   中英

警告:mysqli_query()期望参数1为mysqli,在中给出null

[英]Warning: mysqli_query() expects parameter 1 to be mysqli, null given in

我正在新的PHP网站上工作,并且需要此错误的帮助。

警告:mysqli_query()期望参数1为mysqli ,.中为null。

我有类Database.class和一个抽象类ActiveRecord.php。

    class Database {
    private static $instance = null;
    private function __construct(){}
    public static function getInstance(){
        if(!self::$instance){
            self::$instance = mysqli_connect(DBHOST, DBUSER, DBPASS, DB);
            return self::$instance;
        }
    }
}

和ActiveRecord类在新文件中。

        abstract class ActiveRecord {
    public function save() {
        $q = "UPDATE " . static::$table . " SET ";
        foreach($this as $k=>$v){
            if($k==static::$key) continue;
            $q.=$k."='".$v."',";
        }
        $q = rtrim($q,",");
        $keyField = static::$key;
        $q.=" WHERE ".static::$key." = " . $this->$keyField;
        mysqli_query(Database::getInstance(), $q);
    }
}

当我测试save(); 我得到mysqli警告的功能。 我创建了新文件并将其写入其中。

    class Category extends ActiveRecord {
    public static $table = "categories";
    public static $key = "category_id";
}

$cat = Category::get(1);
$cat->name = "Action";
$cat->description = "Action Description";
$cat->save();

问题是在save()函数中Database :: getInstane()无法识别。 但是,如果我放置“ mysqli_connect(“ localhost”,“ root”,“”,“ db”)“,一切工作正常,并脚本更新数据库记录。

有人知道是什么问题吗?

问题是,如果实例已创建,则您不返回任何内容。

如下更新您的getInstance函数

public static function getInstance(){
if(!self::$instance){ 
self::$instance = mysqli_connect(DBHOST, DBUSER, DBPASS, DB);
} 
return self::$instance; 
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM