您现在的位置是: 首页 > 技术分享 >
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;
}
}
分享:
