php mysql数据库操作类_php mysql数据库操作类

这是一个PHP数据库操作类的实现,包括构造函数、连接数据库、析构函数以及增(INSERT)、删(DELETE)、改(UPDATE)、查(SELECT)等基本操作。类中包含了设置WHERE条件、FIELD字段、DATA数据的方法,支持多数据库连接,并能处理数据的SQL注入问题。
摘要由CSDN通过智能技术生成

*SELECT

*$where=array('name'=>$name,'time'=>$time)

*$db=new db('tablename');$result_array=$db->field($field)->where($where)->select()

*$db=new db('tablename');$result_array=$db->field('field1,field2')->where('where1,where2')->select()

*------------------------------------------------------------------------------------------------------

*

*DELETE

*$db=new db('tablename');$result=$db->where($where)->delete()

*------------------------------------------------------------------------------------------------------

*

*INSERT

*$db=new db('tablename');$result=$db->data($data)->insert()

*$db=new db('tablename');$result=$db->data('name=$name,nid=$nid')->insert()

*------------------------------------------------------------------------------------------------------

*

*UPDATE

*$db=new db('tablename');$result=$db->data($data)->updata()

*$db=new db('tablename');$result=$db->data('name=$name,nid=$nid')->updata()*/

classdb{private $db_handle;private $db_handle2;private $tablename;private $where_str;private $data_str;private $field_str;private $query_sql;private $result;private $other_str;private $multi_db=false;/** 构造函数,判断是否有主从库,连接数据库*/

function __construct($tablename){$this->tablename=$tablename;

}/** 数据库连接

* @access private

* @param $db_config

* @return $handle*/

private function connect($db_config){$this->db_handle = mysql_connect($db_config['host'],$db_config['user'],$db_config['pwd']);if (!$this->db_handle){return 0;

}else{if(mysql_select_db($db_config['db'],$this->db_handle)){mysql_query("SET NAMES ".$db_config['charset']);return 1;

}else{return 0;

}

}

}/** 析构函数,释放内存,断开连接

**/

function__destruct(){unset($this->data_str);unset($this->db_handle);unset($this->tablename);unset($this->where_str);unset($this->field_str);unset($this->query_sql);unset($this->other_str);if(mysql_close($this->db_handle)!=0){return 1;

}else{return 0;

}

}/** where

* @param 字符串或数组 where['_logic']为逻辑,如 OR AND

* 返回 key='value',key='value'*/

public function where($where){if(is_string($where)){$this->where_str=trim($where);

}else{if(isset($where['_logic'])){$logic=strtoupper($where['_logic']);unset($where['_logic']);

}else{$logic='AND';//默认逻辑 AND

}foreach ($where as $key=>$value){$this->where_str.=' '.$logic.' ';$this->where_str.=$key."='".mysql_real_escape_string($value)."'";

}$substr_num=strlen($logic)+2;$this->where_str=substr($this->where_str, $substr_num);//获取逻辑符号的长度,去除最后多加的逻辑符合

}return $this;

}/** field 获取查询的,或者要更新插入的字段值。*/

public function field($field){if(is_string($field)){$this->field_str=trim($field);

}else{for($i=0;$ifield_str.=','.$field[$i];

}$this->field_str=substr($this->field_str, 1);

}return $this;

}/** data 返回如(1,2)或者(1,2),(3,4)格式的*/

public function data($data){if(is_string($data)){//插入的数据是字符串,只能是值,没有field

$this->data_str.=$data;

}else{//插入的是数组

$data_dimension=0;if(!isset($this->field_str)){//先判断有没有设置field,没有先设置

foreach ($data as $key=>$value){if(is_array($value)){//如果data是二维数组,即要插入很多数据

$data_dimension=2;foreach ($value as $key2=>$value2){$this->field_str.=','.$key2;

}break;

}else{//如果是一维数组,

$this->field_str.=','.$key;

}

}$this->field_str=substr($this->field_str, 1);

}if(0==$data_dimension){//如果已经设置了field_str,没有判断维数,先判断维数。

foreach ($data as $key=>$value){if(is_array($value)){$data_dimension=2;

}else{$data_dimension=1;

}break;

}

}if(2==$data_dimension){//如果是二维数组

foreach ($data as $key=>$value){$this->data_str.=',(';foreach ($value as $key2=>$value2){$this->data_str.="'".$value2."',";

}$this->data_str=substr($this->data_str,0,(strlen($this->data_str)-1));$this->data_str.=')';

}$this->data_str=substr($this->data_str, 1);

}if (1==$data_dimension){//一维数组

$this->data_str.='( ';foreach ($data as $key=>$value){$this->data_str.="'".$value."'".',';

}$this->data_str=substr($this->data_str, 0,(strlen($this->data_str)-1));$this->data_str.=')';

}

}return $this;

}/** insert 数据插入

* @return 插入id*/

public functioninsert(){$this->query_sql.='INSERT INTO '.$this->tablename;if(isset($this->field_str)){$this->query_sql.=' ('.$this->field_str.') ';

}$this->query_sql.=' VALUES '.$this->data_str;$this->execute();if($this->result){echo 'success';

}else{echo 'field';

}

}/** updata*/

public functionupdate(){if(!isset($this->field_str)){$this->query_sql.='UPDATE '.$this->tablename.' SET '.$this->data_str.' WHERE '.$this->where_str;if(isset($this->other_str)){$this->query_sql.=$this->other_str;}

}else{$this->query_sql.='UPDATE '.$this->tablename.' SET ';$field_replaced=str_replace(array('(',')',' '), '',$this->field_str );$field_array=explode(',', $field_replaced);$data_replaced=str_replace(array('(',')',' '), '',$this->data_str );$data_array=explode(',', $data_replaced);for($i=0;$iquery_sql.=$field_array[$i]."=".$data_array[$i].",";

}$this->query_sql=substr($this->query_sql, 0,(strlen($this->query_sql)-1));$this->query_sql.=' WHERE '.$this->where_str;if(isset($this->other_str)){$this->query_sql.=$this->other_str;}

}$this->execute();if($this->result){echo 'success';

}else{echo 'field';

}

}/** select*/

public functionselect(){if(!isset($this->field_str)){$this->field_str='*';

}$this->query_sql='SELECT '.$this->field_str.' FROM '.$this->tablename;if(isset($this->where_str)){$this->query_sql.=' WHERE '.$this->where_str;}if(isset($this->other_str)){$this->query_sql.=$this->other_str;}$this->execute();$result_select=array();if(mysql_num_rows($this->result)>0){while ($row=mysql_fetch_assoc($this->result)){$result_select[]=$row;

}

}mysql_free_result($this->result);return $result_select;

}public functiondelete(){$this->query_sql.='DELETE FROM '.$this->tablename;if(isset($this->where_str)){$this->query_sql.=' WHERE '.$this->where_str;}if(isset($this->other_str)){$this->query_sql.=$this->other_str;}$this->execute();if($this->result){echo 'success';

}else{echo 'field';

}

}/** execute 执行sql语句,有从库,select连从库

* @param $this->query_sql 需要执行的sql

* @return*/

public functionexecute(){require("config.db.php");if(isset($db_config2)){$this->multi_db=true;

}if($this->multi_db){if(0==strpos($this->query_sql, 'SELECT')){$this->connect($db_config2);

}else{$this->connect($db_config);

}

}else{$this->connect($db_config);

}echo $this->query_sql;$this->result=mysql_query($this->query_sql);

}/***/

public function limit($limit){$this->other_str.=' LIMIT '.$limit;return $this;

}public function page($page,$num='20'){$limit_pian=$page*$num;$this->other_str.=' LIMIT '.$limit_pian.','.$num;return $this;

}/** $param eg. string $group='name,tpye';*/

public function groupby($groupby){$this->other_str.=' GROUP BY'.$groupby;return $this;

}/** orderby

* @param $order eg.:string id DESC;array $order=array('id'='DESC','name'='ASC')*/

public function orderby($order){if(is_string($order)){$this->other_str.=' ORDER BY '.$order;

}else{$this->other_str.=' ORDER BY ';foreach ($order as $key=>$value){$this->other_str.=$key.' ';if('DESC'==$value){$this->other_str.='DESC,';

}else{$this->other_str.='ASC,';

}$this->other_str=substr($this->other_str, 0,(strlen($this->other_str)-1));

}

}return $this;

}

}?>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值