您现在的位置是: 首页 > 技术分享 >
DB类基本操作
[注明:]闲暇时写的一个DB类,主要是最基础的CURD操作,还可以自行做一些扩展。我只写得是一些基本的用法,封装一些常用的方法,逻辑性比较强的业务还得在日后练习中加强。下面的方法,我已作相应的测试。
db.config.php db配置文件
<?php /** * 数据库配置信息 * db.config.php * @author lei.hongye@xcar.com.cn * @copyright Copyright 2015 */ define('DB_HOST', 'localhost');//数据库地址 define('DB_USER', 'root');//数据库用户名 define('DB_PWD', '');//数据库密码 define('DB_NAME', 'message');//数据库名 define('DB_CHARSET', 'gbk');//数据库字符码 define('TIMEZONE', 'PRC');//数据库时区设置
db.class.php db类操作方法
<?php /** * DB类【主要操作数据库增删改查】 * ============================================== * 版权所有 2010-2015 * ---------------------------------------------- * 这不是一个自由软件,未经授权不许任何使用和传播。 * ============================================== * @date: 2015-12-25 * @author: lei.hongye * @desc:此类只是空闲时候写得一些简单的DB操作 */ require_once './db.config.php'; date_default_timezone_set(TIMEZONE);//设置时区 class DB{ private $db_host;//数据库地址 private $db_user;//数据库用户名 private $db_pwd;//数据库密码 private $db_port;//数据库端口号 private $db_name;//数据库名 private $db_table;//数据库表名 private $db_connect_link;//数据库连接 /** * db类的构造函数 * Enter description here ... * */ public function __construct($db_host=DB_HOST,$db_user=DB_USER,$db_pwd=DB_PWD,$db_name=DB_NAME,$db_port='3306') { $this->db_host = $db_host; $this->db_user = $db_user; $this->db_pwd = $db_pwd; $this->db_name = $db_name; $this->db_port = $db_port; } /** * @todo 打开数据库连接 * Enter description here ... */ private function db_connect() { $this->db_connect_link = mysql_connect($this->db_host,$this->db_user,$this->db_pwd); mysql_select_db($this->db_name); mysql_query('set names gbk'); } /** * @todo 关闭数据库连接 * Enter description here ... */ private function db_close() { mysql_close($this->db_connect_link); } /** * @todo 通过sql执行语句 * Enter description here ... */ public function get_sql_data($sql){ $this->db_connect(); $data_list = array(); $res = mysql_query($sql,$this->db_connect_link); while ($obj = mysql_fetch_assoc($res)) { if ($obj){ $data_list[] = $obj; } } $this->db_close(); return $data_list; } /** * @todo 数据库添加数据 * @param $table 表名 * @param $data array() */ public function insertData($table,$data) { if(empty($table)){ die('INSERT Empty TableName!');} if(empty($data)){ die('INSERT '.$tableName.' Empty Data');} $sql = ''; $sql = "insert into {$table}"; $addsql = $this->parseArray($data); if(!empty($addsql)){ $this->db_connect(); $this->query($sql.$addsql); $insertid = mysql_insert_id($this->db_connect_link); return $insertid; $this->db_close(); }else{ mysql_errno(); } } /** * @todo 数据库删除数据 * @author tianzhukui@126.com * @param $where array() where条件 */ public function delData($table,$where) { if (empty($table)){ die('Delete Empty TalbeName');} if (empty($where)){ die('参数不正确'); }else { $sql = "DELETE FROM {$table} WHERE 1"; if (is_array($where)){ foreach ($where as $k=>$v) { $sql .= " AND {$k} = '{$v}'"; } }elseif (is_string($where)){ $sql .= ' AND '. $where; } } return $this->query($sql); } /** * @todo 数据库更新数据 * @param $table 表名 * @param $data 操作的数据 * @param $where 更新条件 */ public function updateDate($table,$data,$where) { if (empty($table)){die('Update Empty TableName');} if (!is_array($data)){die('插入数据格式错误');} $sql = "UPDATE {$table} SET "; foreach ($data as $k=>$v){ $sql .= "{$k} = '$v',"; } $sql = rtrim($sql,','); $sql .= "WHERE 1 AND "; if (is_array($where)){ foreach ($where as $k=>$v){ $sql .= " {$k} = '$v' AND "; } $sql = rtrim($sql,','); }elseif (is_string($where)){ $sql .= $where; } return $this->query($sql); } /** * @todo 解析数据:转义字符 * */ public function parseData($value) { if (is_string($value)) { $value = addslashes($value); }elseif (is_array($value)) { $value = array_map(array($this,'parseValue'), $value); }elseif (is_bool($value)) { $value = !empty($value) ? '0' : '1'; }elseif (is_null($value)) { $value = 'null'; } return $value; } /** * @todo解析数组:生成sql * $type true:添加 false:update */ public function parseArray($value=array(),$type='TRUE') { $sql = ''; if (is_array($value)) { if ($type){ $data = array(); $keys = join('`,`', array_keys($value));//获得数据的key值 $key_str = "(`".$keys."`)"; $sql .= $key_str." VALUES "; foreach ($value as $k=>$V){ $data [] = "'".$this->parseData($V)."'"; } $new_data = join(',', $data);//将所得到的value值用逗号连接起来 $sql.= "(".$new_data.")"; }else{ $sql = "set "; foreach ($value as $k=>$v){ $sql .= "`{$k}`='".$this->parseData($V)."' ,"; } $sql = rtrim($sql,','); } } return $sql; } /** * @todo 执行update * @author lhy */ public function query($sql) { $this->db_connect(); $res = mysql_query($sql,$this->db_connect_link); return $res; } }
分享: