私は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のものを実行するすべてのメソッド呼び出しをオーバーロードすることです。
$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で非オブジェクトのプロパティを取得しようとすると、私が持っている他のPHPファイルで
if文($ unq_vstr-> num_rows)に対応する "25"を返します。
私は間違っていますか? 私はそれがDBクラスに依存する可能性はかなり確信していますが、私は問題が何であるか把握できません。
あなたは私のクラスの中でラップmysqliなしでそれを行う別の方法を使うべきだと思いますか? 何か提案がありがとうございます。
あなたが例を探している
うわー、どのような完全な答えを参照してください。どうもありがとうございます!本当に役に立ちます。 –