1 link){18 $this->link=new self($config);19 //这里还可以这样写:20 //$this->link=$this->__construct($config);21 //因为实例化对象就是调用一次类的__construct()函数。22 23 }24 return $this->link;25 26 }27 //下面的这个克隆函数变成私有的,这样就能在类的外面克隆了。28 private function __clone(){}29 /********************************************************************30 ********************************************************************31 ** !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! *******32 *******************************************************************************/33 /*34 * 构造函数35 * 主机名,使用者,使用者密码,数据库的名字,查询语句36 */37 public function __construct($config) {38 $this->host=$config['host'];39 $this->User=$config['user'];40 $this->Pwd=$config['pwd'];41 $this->Dbname=$config['dbname'];42 $this->my_sql=$config['sql'];43 //这个也是摘过来的的(if)44 //if ( is_null(self::$_dbh) ) { 45 $this->link= $this->_connect();46 // }47 $this->result= $this->Query($this->my_sql);48 49 }50 51 //成员方法 是用来执行sql语句的方法52 /*53 * 数据库查询函数54 * $sql string 是你的查询语句55 */56 public function Query($sql)57 //两个参数:sql语句,判断返回1查询或是增删改的返回58 {59 $db = $this->connect();60 $r = $db->query($sql);61 if (isset($r)) {62 return $r->fetch_all();//查询语句,返回数组.执行sql的返回方式是all,也可以换成row63 } else {64 return "数据库查询失败!";65 }66 67 68 }69 /*70 * 数据库连接函数71 */72 public function connect(){73 $Link= mysqli_connect($this->host,$this->User,$this->Pwd,$this->Dbname);74 //$this->dbh=75 return $Link;76 }77 78 }79 //$sql='select * from zixun;';80 //$config=include './BBB.php';81 // $shujuku=new db($config);82 83 84 // include './login.html';85 //var_dump($shujuku->result);86 87 ?>
注意在实例化具有了单例模式函数的类时,是这样实例化的: 类名::instance($config);