時,我有簡單的線條class autorization extends mysql
,它會導致致命錯誤:調用一個成員函數close()一個非對象在...在該行被致命錯誤擴展簡單的類
function __destruct(){
$this->connection->close();
}
構造
$mysqli = new mysqli(*****);
$this->connection = $mysqli;
在沒有其他方法OT類的MySQL不使用
時,我有簡單的線條class autorization extends mysql
,它會導致致命錯誤:調用一個成員函數close()一個非對象在...在該行被致命錯誤擴展簡單的類
function __destruct(){
$this->connection->close();
}
構造
$mysqli = new mysqli(*****);
$this->connection = $mysqli;
在沒有其他方法OT類的MySQL不使用
連接屬性未初始化。如果您在mysql
類中有構造函數,請確保您尚未通過在autorization
類中指定構造函數完全覆蓋它。
parent::__constructor(any_params_to_mysql_go_here);
順便說一下,從你的問題不清楚是誰維護的連接屬性:mysql的類或沒有這可以通過添加可以實現嗎?
所有與mysql一起工作的是在擴展的mysql類中。從授權(在第一篇文章中錯過了一個字母)我只是調用方法與參數從數據庫返回的數據。問題是,我認爲當我擴展類構造函數自動創建新的對象與擴展類中的連接,但如現在看到我錯了。 – user1564141 2012-08-08 07:54:12
用於測試的那一刻嘗試
function __destruct(){
if (!is_object($this->connection)) {
echo ' $this->connection is not an object', "\n";
var_dump($this->connection);
die;
}
if (!method_exists($this->connection, 'close')) {
echo '$this->connection has no method close()', "\n";
echo get_class($this->connection), "\n";
die;
}
$this->connection->close();
}
返回$這 - >連接不是一個對象NULL ...但構造函數創建新的mysqli連接,我只想關閉它。 – user1564141 2012-08-08 07:30:40
那麼,'$ this-> connection'是什麼? *它是一個對象嗎? – 2012-08-08 07:16:09
似乎,'$ this-> connection'不是一個對象(可能是'null'),但沒有看到,你在哪裏定義它,或者你在它之間做了什麼,沒有人可以告訴你_why_ – KingCrunch 2012-08-08 07:16:27
是的,對不起,忘了構造函數 – user1564141 2012-08-08 07:17:20