【问题标题】:php mysqli classphp mysqli 类
【发布时间】:2011-05-16 18:24:42
【问题描述】:

我的基本问题是我无法从另一个类中访问一个类。到目前为止,这是我设置的内容:

我的数据库类:

class db {

    public static $mysqli;
    public function __construct(){}

    static function con(){
        if(!self::$mysqli){
            self::$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
        }
        return self::$mysqli;
    }
}

当我从这样的函数中调用它时,这一切都很好而且花花公子:

function defineSettings(){
  if ($query = db::con()->prepare(...my query...)) {    
    $query->execute();
    $query->bind_result($1, $2, $3);
    $query->fetch();
    $query->close();
  }

  db::con()->close();

}

但是,我无法从另一个类的方法中访问此 db->con() 方法。我已经尝试将它扩展到一个新的类,但也许我做错了。非常感谢如何从新课程中使用它的示例!谢谢!

【问题讨论】:

  • 确保将db::con() 定义为public static functionpublic class db
  • 一旦这样做,我如何从另一个类中的方法调用它?
  • 只要代码在同一个文件中(或者带有class db的文件包含在另一个文件中),那么它应该可以工作。
  • 语法错误,声明公共类 db 时出现意外的 T_PUBLIC
  • 啊,从public class db中删除public

标签: php class methods mysqli


【解决方案1】:

不是 100% 确定我是否理解您的问题,但下面的课程应该展示如何从 Db 类中获取 db 对象,然后在另一个函数中使用它

class Example2 {
    private $db;

    public function test() {
        if (!$this->db) {
            $this->db = db::con();
        }
        //Do your stuff
    }

    public function test2() {
        $this->db->close();
    }
}

【讨论】:

  • 我只是得到一个错误:mysqli::close() [mysqli.close]: Couldn't fetch mysqli in ...
猜你喜欢
  • 2013-08-30
  • 2012-01-09
  • 1970-01-01
  • 2013-10-12
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 2017-02-05
  • 1970-01-01
相关资源
最近更新 更多