本白演示的代码属于较为简单的数据库封装类,较适合初学,需要的朋友可以参考下

接着稍微说说整体的思路。整个类的封装,包含一个连接数据库的私有属性$conn和若干操作函数。$conn在对象实例化的时候,由构造函数处理传入的参数后返回一个资源型的连接句柄。而后即可通过调用该实例化的对象的相应方法对数据库进行增删查改的操作。

talk less and show code:

         [email protected]> 
* @version 1.0
* @since 2015
*/


class Mysql{

//数据库连接返回值
private $conn;

/**
* [构造函数,返回值给$conn]
* @param [string] $hostname [主机名]
* @param [string] $username[用户名]
* @param [string] $password[密码]
* @param [string] $dbname[数据库名]
* @param [string] $charset[字符集]
* @return [null]

*/

function __construct($hostname,$username,$password,$dbname,$charset='utf8'){
  $conn = @mysql_connect($hostname,$username,$password);
  if(!$conn){
    echo '连接失败,请联系管理员';
    exit;
  }
  $this->conn = $conn;
  $res = mysql_select_db($dbname);
  if(!$res){
  echo '连接失败,请联系管理员';
  exit;
  }
  mysql_set_charset($charset);
}
function __destruct(){
  mysql_close();
}
/**
* [getAll 获取所有信息]
* @param [string] $sql [sql语句]
* @return [array] [返回二维数组]
*/
function getAll($sql){
  $result = mysql_query($sql,$this->conn);
  $data = array();
  if($result && mysql_num_rows($result)>0){
    while($row = mysql_fetch_assoc($result)){
    $data[] = $row;
    }
  }
  return $data;
}
/**
* [getOne 获取单条数据]
* @param [string] $sql [sql语句]
* @return [array] [返回一维数组]
*/
function getOne($sql){
  $result = mysql_query($sql,$this->conn);
  $data = array();
  if($result && mysql_num_rows($result)>0){
    $data = mysql_fetch_assoc($result);
  }
  return $data;
}

/**
* [getOne 获取单条数据]
* @param [string] $table [表名]
* @param [string] $data [由字段名当键,属性当键值的一维数组]
* @return [type] [返回false或者插入数据的id]
*/

function insert($table,$data){
  $str = '';
  $str .="INSERT INTO `$table` ";
  $str .="(`".implode("`,`",array_keys($data))."`) "; 
  $str .=" VALUES ";
  $str .= "('".implode("','",$data)."')";
  $res = mysql_query($str,$this->conn);
  if($res && mysql_affected_rows()>0){
      return mysql_insert_id();
  }else{
    return false;
  }
}
/**
* [update 更新数据库]
* @param [string] $table [表名]
* @param [array] $data [更新的数据,由字段名当键,属性当键值的一维数组]
* @param [string] $where [条件,‘字段名'=‘字段属性']
* @return [type] [更新成功返回影响的行数,更新失败返回false]
*/
function update($table,$data,$where){
  $sql = 'UPDATE '.$table.' SET ';
  foreach($data as $key => $value){
  $sql .= "`{$key}`='{$value}',";
  }
  $sql = rtrim($sql,',');
  $sql .= " WHERE $where";
  $res = mysql_query($sql,$this->conn);
  if($res && mysql_affected_rows()){
    return mysql_affected_rows();
  }else{
  return false;
  }
}

/**
* [delete 删除数据]
* @param [string] $table [表名]
* @param [string] $where [条件,‘字段名'=‘字段属性']
* @return [type] [成功返回影响的行数,失败返回false]
*/
function del($table,$where){
  $sql = "DELETE FROM `{$table}` WHERE {$where}";
  $res = mysql_query($sql,$this->conn);
  if($res && mysql_affected_rows()){
    return mysql_affected_rows();
  }else{
  return false;
  }
}
}

实例化类:

         getOne($sql);

//获取多条数据

$sql = "SELECT * FROM as_article where as_article_type_id=1 order by as_article_addtime desc limit $start,$limit";
$service = $db->getAll($sql);

//插入数据

$arr = array(
'as_article_title'=>'数据库操作类',
'as_article_author'=>'rex',
);
$res = $db->insert('as_article',$arr);

//更新数据

$arr = array(
'as_article_title'=>'实例化对象',
'as_article_author'=>'Lee',
);
$where = "as_article_id=1";
$res = $db->update('as_article',$arr,$where);

//删除数据

$where = "as_article_id=1";
$res = $db->del('as_article',$where);

?>

演示完代码,大概说几句。

getOne方法传入$sql的sql语句用于查询单条数据并返回一维数组;getAll方法同样传入sql语句,用于查询多条数据,并返回二维数组;insert方法传入表名和关联数组,返回boolen型或者插入数据对应索引;update方法传入表名、关联数组和条件,返回boolen或者影响的行数;del方法传入表名和条件,返回boolen型。

that's all,but not the all.有兴趣的朋友可以把getOne和getAll直接传入sql语句作为参数的方式再优化一下。

最新资讯
国铁集团:24日0时起 铁路免收退票费扩至全国

国铁集团:24日0时起 铁

为全力做好新型肺炎疫情防控工作,中国国家铁路集团有限
暴风集团:存在无法在法定期内披露2019年度报告风险

暴风集团:存在无法在

暴风集团发布公告称,截至目前,公司尚未聘请首席财务官和
拼多多通过收购获支付牌照? 回应:不予置评

拼多多通过收购获支付

针对网传“拼多多正式收购付费通获得支付牌照”一事,拼
中兴通讯:本次非公开发行股票将于2020年2月3日上市

中兴通讯:本次非公开

中兴通讯发布公告称,本次非公开发行股票将于2020年2月3
特斯拉市值超千亿 马斯克领取首份工资

特斯拉市值超千亿 马

特斯拉市值超过千亿美元,也标志着特斯拉CEO马斯克即将
华为开发者大会2020因疫情延期至3月:以直播呈现

华为开发者大会2020因

华为官方宣布,基于新型冠状病毒感染的肺炎疫情防控形势
最新文章
php求斐波那契数的两种实现方式【递归与递推】

php求斐波那契数的两

这篇文章主要介绍了php求斐波那契数的两种实现方式,结
浅析PHP7 的垃圾回收机制

浅析PHP7 的垃圾回收

垃圾回收机制是一种动态存储分配方案。它会自动释放程
PHP 模拟登陆功能实例详解

PHP 模拟登陆功能实例

这篇文章主要介绍了PHP 模拟登陆功能,结合实例形式详
Yii框架连表查询操作示例

Yii框架连表查询操作

这篇文章主要介绍了Yii框架连表查询操作,结合实例形式
mysqli扩展无法在PHP7下升级问题的解决

mysqli扩展无法在PHP7

这篇文章主要给大家介绍了关于mysqli扩展无法在PHP7下
php探针不显示内存解决方法

php探针不显示内存解

在本篇文章里小编给大家整理的是关于php探针不显示内