1
中給出我正在處理新的PHP站點,並且我需要幫助解決此錯誤。警告:mysqli_query()期望參數1是mysqli,null在
警告:mysqli_query()預計參數1是mysqli的,空中給出 ..
我有類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(){如果(!自:: $實例){自:: $實例= mysqli_connect(DBHOST,DBUSER,DBPASS,DB) ;} return self :: $ instance; }' – jagad89
注意return語句'if'外 – jagad89
謝謝你,現在正在工作。 ;) – m1l4n