0
我是MySQLi擴展的新手,並且遇到了問題。每當查詢結束執行時,我知道你應該釋放結果。以下是我爲運行簡單查詢而構建的類的一部分。有人能告訴我我錯了哪裏?正確輸入時,查詢成功運行。這只是我的頁面不會重新加載喜歡它,應該但它給了我這些錯誤......MySQLi PHP擴展問題
Fatal error: Call to a member function free() on a non-object in <file> on <line>
...而這個錯誤...
Fatal error: Call to a member function close() on a non-object in <file> on <line>
這裏的一個簡化版本我的代碼:
... More code ...
public function query($query) {
try {
if ($result = $this->connection->query($query, MYSQLI_USE_RESULT)) {
$result->free(); //Problems here
$result->close(); //Problems here
return $result;
} else {
$result->free(); //Problems here
$result->close(); //Problems here
throw new Exception("The query was invalid");
}
} catch (Exception $e) {
die($e->getMessage());
}
}
... More code ...
我想避免這樣做程序的方式,因爲這是一個面向對象的應用程序。
謝謝你的時間。
PS:上面的代碼示例遵循類似的模式,以與第一實施頁:http://www.php.net/manual/en/mysqli.query.php
我執行的測試查詢是一個INSERT查詢。這可能是我的問題? – 2011-06-16 19:52:52
當然。因爲我建議只有'SELECT'查詢有結果。其他一切只返回「成功」('true')或「失敗」('false')。更糟糕的是,如果結果評估爲'false'('else'分支),但是您仍然對其調用'free()',那麼測試會更糟糕。 – KingCrunch 2011-06-16 19:55:31
看過你的描述後,是的,那看起來像你擊中了頭部的指甲。話雖如此,有沒有辦法我可以看到這是否是一個對象? – 2011-06-16 19:55:47