mysql runstat_链式调用封装MySQL类

链式调用封装MySQL类。自己做的一个操作数据库的类,可以链式调用,有错误提示功能。

class MySQL {

private $host;

private $name;

private $password;

private $dbname; //数据库名

private $link;

private $errlog=array();

public $errreport=true;//开启错误报告

private $runStat;//运行状态,记录当前运行的成员

private $value;//结果

public function __construct($server,$dbuser,$psw){//连接主机

$this->host=$server;

$this->name=$dbuser;

$this->password=$psw;

$this->link=@mysql_connect($this->host,$this->name,$this->password) or die('ERROR: 数据库主机连接失败!
');

$this->runStat="init";//定义为初始化

$this->fn=0;

}

public function to2DArray(){//构造二维数组

/检测//

if(!is_resource($this->value)){

array_push($this->errlog, "ERROR: 运行错误,在to2DArray层调用错误的方法
");

$this->runStat="error";//将运行状态设置为错误

return $this;

}

$this->runStat="to2DArray";

/

$_2DArray=Array();

while($row=@mysql_fetch_array($this->value)){//直接取value值,此时的value应当为resource类型

$keyarr=array_keys($row);

foreach ($keyarr as $key) {

if (is_int($key)) {

unset($row[$key]);//去掉以数组为键名的数组元素

};

}

array_push($_2DArray, $row);

}

$this->value=$_2DArray ;

return $this;

}

public function db($database,$charset){//连接数据库

/检测//

if(!is_resource($this->link)){

array_push($this->errlog, "ERROR: 运行错误,在db层调用错误的方法
");

$this->runStat="error";//将运行状态设置为错误

return $this;

}

$this->runStat="db";

/

$this->dbname=$database;

mysql_query("set names ".$charset);//设置字符集

$this->value=mysql_select_db($this->dbname,$this->link);

if (!$this->value) {

echo "ERROR:打开数据库错误!
";

$this->runStat="error";

}

return $this;

}

public function query($sql) {

/检测//

if(!is_string($sql)){

array_push($this->errlog,"ERROR: 运行错误,在query层调用错误的方法
");

$this->runStat="error";//将运行状态设置为错误

return $this;

}

$this->runStat="query";

/

$sql=addslashes($sql);//防注入

$result=mysql_query($sql);

if (!$result) {

array_push($this->errlog,"ERROR: 语句运行错误!");

$this->runStat="sqlerror";

}

$this->value=$result;

return $this;

}

function value() {

$this->runStat="init";

if ($this->errreport) {

foreach ($this->errlog as $value) {

echo $value;

}

}

$this->errlog=array();//clean

$result=$this->value;

$this->value=null;//clean

return $result;

}

public function __call($f,$v){//错误方法吸收

echo "ERROR: 不存在".$f."()方法.
";

return $this;

}

}

$db=new MySQL("localhost", "root", "lijun");

//$db->errreport=false;

$h=$db->db("students", 'utf8');

var_dump($db->db("ip", 'utf8')->to2DArray()->query("select * from ip limit 0,2")->to2DArray()->value());

var_dump($h->query("seslect * from nuser limit 10,2")->to2DArray()->value());

var_dump($db->db("ip", 'utf8')->query("SELECT * FROM ip LIMIT 0 , 2")->to2DArray()->value());

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值