/**** db是个抽象类
conf类已经测试过可以使用
******/
class mysql extends db{
private $conf = array();
private static $ins = null;
private $conn = null;
//连接数据库的函数实现 protected前缀不能通过new来获取实例
protected function __construct(){
$this->conf = conf::getinstance();
// print_r($this->conf);
// var_dump($this->conf);
// echo ”;
$this->connect($this->conf->host,$this->conf->user,$this->conf->pwd);
// $this->connect(‘localhost’,’root’,’111111′);
$this->select_db($this->conf->db);
$this->setchar($this->conf->char);
}
public function __destruct(){
}
//单例模式 获取自己实例的方法
public static function getins(){
if(!(self::$ins instanceof self)){
self::$ins = new self();
}
return self::$ins;
}
//连接数据库的抽象类 $h服务器 $u用户名 $p密码 return bool
public function connect($h,$u,$p){
$this->conn = mysql_connect($h,$u,$p);
if(!$this->conn){
$err = new exception(‘连接失败’);
throw $err;
}
}
protected function select_db($db){
$sql = ‘use’.$db;
$this->query($sql);
}
protected function setchar($char){
$sql = ‘set names’.$char;
return $this->query($sql);
}
//发送查询的抽象类 return mixed bool/resource
public function query($sql){
$rs = mysql_query($sql,$this->conn);
logstore::writelog($sql);
return $rs;
}
}
打印出来$this->conf如下图:
为什么提示$this->connect(null,null,null)
回复讨论(解决方案)
显然用户名和口令没有传递到位
显然用户名和口令没有传递到位
单独打印
$this->conf->host ,
$this->conf->user,
$this->conf->pwd
结果
localhost,
root,
111111
我用cmd这个用户名密码可以登陆的
不知道哪里的问题
显然用户名和口令没有传递到位
我在$this->connect($this->conf->host,$this->conf->user,$this->conf->pwd);
之前插入:
var_dump($this->conf->host);
echo ”;
结果如下图:
错误信息都贴过了,再贴也没有意义
用户名的部分是空的,连这个你都看不见?
public function connect($h,$u,$p){
你可以在这里打印 $h,$u,$p 看看
$this->conn = mysql_connect($h,$u,$p);
贴的代码和打印结果对应不上。所以不知道你具体错在哪里,但是账号密码没传过去但是host传过去了。自己找原因吧。