1
我有一個持有mysqli實例的類(這樣可以避免遍佈源代碼的數據庫設置)。如何用可變數量的參數重載方法?
類DB的樣子:
class DB {
private $mysqli;
public function connect() {
$this->mysqli = new mysqli("localhost", "user", "pwd", "db-name");
}
public function __call($method, $args) {
return $this->mysqli->$method(extract($args));
}
}
正如你可能會看到什麼,我試圖做的是重載每一個方法調用執行的mysqli的。
在其他PHP文件,我有:
$unq_vstr = $this->db->query("SELECT * FROM user_log WHERE user_ip='$ip' AND user_last_visit='$now';");
if ($unq_vstr->num_rows > 0) { // ERROR
// ...
}
但我發現了「注意:試圖讓非對象的財產上線/home/alessandro/www/admin/index.php 25「對應於if語句($ unq_vstr-> num_rows)。
我在做什麼錯? 我很確定它可能取決於數據庫類,但我無法弄清楚是什麼問題。
你覺得我應該用另一種方式來做到這一點嗎(沒有在我自己的類中包裝mysqli)? 任何建議表示讚賞。
哇,好一個完整的答案。非常感謝!這真的很有幫助。 –