php mysql数据库操作类(实例讲解)

(编辑:jimmy 日期: 2024/10/3 浏览:2)

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

talk less and show code:

<"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;
  }
}
}

实例化类:

<"SELECT count(as_article_id) as count FROM as_article where as_article_type_id=1";
$count = $db->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语句作为参数的方式再优化一下。

一句话新闻
高通与谷歌联手!首款骁龙PC优化Chrome浏览器发布
高通和谷歌日前宣布,推出首次面向搭载骁龙的Windows PC的优化版Chrome浏览器。
在对骁龙X Elite参考设计的初步测试中,全新的Chrome浏览器在Speedometer 2.1基准测试中实现了显著的性能提升。
预计在2024年年中之前,搭载骁龙X Elite计算平台的PC将面世。该浏览器的提前问世,有助于骁龙PC问世就获得满血表现。
谷歌高级副总裁Hiroshi Lockheimer表示,此次与高通的合作将有助于确保Chrome用户在当前ARM兼容的PC上获得最佳的浏览体验。