db.class.php   主要方法

<?php
/**
* 数据库配置信息
*/
define('DB_HOST','127.0.0.1'); //服务器
define('DB_USER','root'); //数据库用户名
define('DB_PASSWORD','123456'); //数据库密码
define('DB_NAME','TEST'); //默认数据库
define('DB_CHARSET','utf8'); //数据库字符集
define('TIMEZONE',"PRC"); //时区设置
date_default_timezone_set(TIMEZONE);
/**
* 类名:DB
* 说明:数据库操作类
*/
class DB
{
public $host; //服务器
public $username; //数据库用户名
public $password; //数据密码
public $db_name; //数据库名
public $conn; //数据库连接变量
/**
* DB类构造函数
*/
public function DB($host=DB_HOST ,$username=DB_USER,$password=DB_PASSWORD,$db_name=DB_NAME)
{
$this->host = $host;
$this->username = $username;
$this->password = $password;
$this->db_name = $db_name;
}
/**
* 打开数据库连接
*/
public function open()
{
$this->conn = mysql_connect($this->host,$this->username,$this->password)or die ('数据库连接失败!</br>错误原因:'.mysql_error());
mysql_select_db($this->db_name)or die('数据库选定失败!</br>错误原因:'.mysql_error());
mysql_query("SET CHARACTER SET utf8");
}
/**
* 关闭数据连接
*/
public function close()
{
mysql_close($this->conn);
} /**
* @description调用方法用
* @param $sql
* @return array
*/
public function QueryAll($sql)
{
$this->open();
$rs = mysql_query($sql,$this->conn);
$objList = array();
while($obj = mysql_fetch_object($rs))
{
if($obj)
{
$objList[] = $obj;
}
}
$this->close();
return $objList;
}
/**
* description查询全部返回Json格式,通讯用
* @param $sql
* @return string
*/
public function QueryAllJson($sql)
{
echo $sql;
$this->open();
$rs = mysql_query($sql,$this->conn);
$objList = array();
$i=0;
while($obj = mysql_fetch_object($rs))
{
$objList[$i]=$obj;
$i++;
}
$this->close();
return json_encode(array("result"=>"success",'data'=>$objList));
}
/**
* @description 插入数据到数据库中
* @param $tableName 表名
* @param array $columns 包含表中所有字段名的数组。默认空数组,则是全部有序字段名
* @param array $values 包含对应所有字段的属性值的数组
* @return int
*/
public function insertData($tableName,$columns=array(),$values=array())
{
$sql = 'insert into '.$tableName .'( ';
for($i = 0; $i < sizeof($columns);$i ++)
{
$sql .= $columns[$i];
if($i < sizeof($columns) - 1)
{
$sql .= ',';
}
}
$sql .= ') values ( ';
for($i = 0; $i < sizeof($values);$i ++)
{
$sql .= "'".$values[$i]."'";
if($i < sizeof($values) - 1)
{
$sql .= ',';
}
}
$sql .= ' )';
$this->open();
mysql_query($sql,$this->conn);
return true;
// $id = mysql_insert_id($this->conn);//取得上一步操作产生的ID(2)
// $this->close();(2)
// return $id;//(2)
}
/**
* 通过表中的某一属性获取数据
*/
public function getDataByAtr($tableName,$atrName,$atrValue){
@$data = $this->QueryAll("SELECT * FROM ".$tableName." WHERE $atrName = '$atrValue'");
if(count($data)!=0)return $data;
return NULL;
}
/**
* description_
* 通过表中的"id",删除记录
*/
public function delete($tableName,$atrName,$atrValue){
echo $tableName;
$this->open();
$deleteResult = false;
if(mysql_query("DELETE FROM ".$tableName." WHERE $atrName = '$atrValue'")) $deleteResult = true;
$this->close();
if($deleteResult) return true;
else return false;
}
/**
* 更新表中的属性值
*/
public function updateParamById($tableName,$atrName,$atrValue,$key,$value){
$db = new DB();
$db->open();
if(mysql_query("UPDATE ".$tableName." SET $key = '$value' WHERE $atrName = '$atrValue' ")){ //$key不要单引号
$db->close();
return true;
}
else{
$db->close();
return false;
}
}
/*
* @description: 取得一个table的所有属性名
* @param: $tbName 表名
* @return:字符串数组
*/
public function fieldName($tableName){
$resultName=array();
$i=0;
$this->open();
$result = mysql_query("SELECT * FROM ".$tableName);
while ($property = mysql_fetch_field($result)){
$resultName[$i++]=$property->name;
}
$this->close();
return $resultName;
} }

user.class.php 操作

<?php
require_once("./db.class.php"); class User{ /**
* description_插入数据到XX
* @param $tableName
* @param $name
* @param $password
* @return int
*/
public function insert($tableName,$name,$password){
$db = new DB();
$resultId = $db->insertData("$tableName",array('name','password'),array($name,$password));
return $resultId;
}
/**
* @description根据ID或XXX查询一条数据,user所查询的表,id是字段名
* @param $table
* @param $name
* @param $value
* @return array|null
*/
public static function getUserById($table,$name,$value){
$db = new DB();
return $db->getDataByAtr("$table",'$name',$value);
}
/**
* @description根据name查询一条数据
* @param $name
* @return array|null
*/
public static function getUserByName($name){
$db = new DB();
@$data = $db->QueryAll("SELECT * FROM user WHERE name = '".$name."'");
if(count($data)!=0)return $data;
else return null;
}
/**
* @description_获取全部数据,调方法使用
* @param $tableName
* @return null
*/
public static function QueryAll($tableName){
$db = new DB();
@$data = $db->QueryAll("select * FROM"." ".$tableName);
if(count($data)!=0) echo $data;
else return null;
}
/**
* @description_获取全部数据,通讯使用
* @param $tableName
*/
public static function QueryAllJson($tableName){
$db = new DB();
@$data = $db->QueryAllJson("SELECT * FROM ".$tableName."");
if(count($data)!=0) echo $data;
else echo false;
}
/**
* description分页查询,返回Json格式。通讯用,echo
* @param $start
* @param $count
*/
public static function QueryWithPage($start,$count){
$db = new DB();
@$data = $db->QueryAllJson("select id,name,password from user order by id limit"." ".$start.",".$count);
if(count($data)!=0) echo $data;
else echo false;
}
/**
* @description_删除数据,根据ID,user是表名,id是....
* @param $tableName
* @param $name
* @param $value
* @return bool
*/
public static function deleteByUid($tableName,$name,$value){
$db = new DB();
if($db->delete("$tableName","$name",$value)) return true;
else return false;
}
}

test.php  测试

<?php
header("Content-Type:text/html; charset=utf8");
require_once("./user.class.php");
$user = new User();
//$user->insert('asssss');
//$user->getUserById(1);
//$userA = User::getUserById(1);
//$userB = User::QueryWithPage(6,10);
//$userB = User::QueryAllJson('user');
//$user=$user->insert('user','www','sd');
//$userB = User::deleteByUid('user','id',7);
//foreach ($user as $u) {
// echo json_encode(array("result"=>"success","date"=>"asd"));
//}
//构造函数被注释掉了,如果有构造函数

PHP历程(封装的增删改查方法)的更多相关文章

  1. 封装PHP增删改查方法

    <?php class sqlModel{ public $db; public function __construct(){ try{ $dbms='mysql';//数据库类型 $dbNa ...

  2. Django REST framework 五种增删改查方法

    Django-DRF-视图的演变   版本一(基于类视图APIView类) views.py: APIView是继承的Django View视图的. 1 from .serializers impor ...

  3. 通用mapper的增删改查方法 留存 备忘

    Mybatis通用Mapper介绍与使用   前言 使用Mybatis的开发者,大多数都会遇到一个问题,就是要写大量的SQL在xml文件中,除了特殊的业务逻辑SQL之外,还有大量结构类似的增删改查SQ ...

  4. Spring Data CrudRepository增删改查方法(八)

    CrudRepository   的主要方法 long count(); boolean exists(Integer arg0); <S extends StudentPO> S sav ...

  5. 03 基于umi搭建React快速开发框架(封装列表增删改查)

    前言 大家在做业务系统的时候,很多地方都是列表增删改查,做这些功能占据了大家很长时间,如果我们有类似的业务,半个小时就能做出一套那是不是很爽呢. 这样我们就可以有更多的时间学习一些新的东西.我们这套框 ...

  6. 关于单链表的增删改查方法的递归实现(JAVA语言实现)

    因为在学习数据结构,准备把java的集合框架底层源码,好好的过一遍,所以先按照自己的想法把单链表的类给写出来了; 写该类的目的: 1.练习递归 2.为深入理解java集合框架底层源码打好基础 学习的视 ...

  7. node.js封装数据库增删改查

    数据库增删改查的封装 小编不容易 const sql = { insert: function (Collection, insertData) { return new Promise((resol ...

  8. JDBC连接Greenplum数据库,封装了增删改查

    要启动好gp服务,再尝试连接 192.168.94.135是主节点(master)的ip 驱动Jar包在官网获取 嫌麻烦,可以直接用我在网盘分享的Jar包,版本较老 链接:https://pan.ba ...

  9. 连接SQLServer的增删改查方法代码

    在Visual C++中用ADO进行数据库编程 1. 生成应用程序框架并初始化OLE/COM库环境 创建一个标准的MFC AppWizard(exe)应用程序CADOConnection,然后在使用A ...

随机推荐

  1. September 12th 2016 Week 38th Monday

    After all, tomorrow is another day. 不管怎样,明天又是全新的一天. Another day? Maybe.  Remember when you reach for ...

  2. UIView和CALayer的区别

    CALayer属于Core Animation部分的内容,比较重要而不太好理解.以下是园子中看到的一篇文章的摘录: 以下摘自<<核心动画编程指南>>: 两者最大的区别是,图层不 ...

  3. 搞笑世界杯(codevs 1060)

    题目描述 Description 随着世界杯小组赛的结束,法国,阿根廷等世界强队都纷纷被淘汰,让人心痛不已. 于是有 人组织了一场搞笑世界杯,将这些被淘汰的强队重新组织起来和世界杯一同比赛.你和你的朋 ...

  4. php常用判断的函数

    empty($var)        //用来检查变量是否为空(没有值或零值) isset($var)           //这个//测试一个变量看它是否已被定义. gettype($var)   ...

  5. php 租房子练习

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. HTML+CSS页面滚动效果处理

    HTML+CSS代码如下: <!doctype html> <html> <head> <meta charset="utf-8"> ...

  7. Multiple types were found that match the controller named 'Home'. (weird error)

    found the error, because I changed the namespace and assembly name, then on the bin folder the old d ...

  8. 攻城狮在路上(壹) Hibernate(四)--- 对象标识符(OID)生成机制

    Hibernate使用对象标识符(OID)来建立内存中对象和数据库表中记录的对应关系,对象的OID和数据库的主键对应.为了保证OID的唯一性和不可变性,应该让Hibernate来为OID赋值.Hibe ...

  9. Oracle 11g新特性 -- 延迟段

    11gR2之前的版本中,当创建一张表时,会自动分配段空间,这样做有几个弊端: 1. 初始创建表时就需要分配空间,自然会占用一些时间,如果初始化多张表,这种影响就被放大. 2. 如果很多表开始的一段时间 ...

  10. wp8 入门到精通 ImageCompress 图片压缩

    //实例化选择器 PhotoChooserTask photoChooserTask = new PhotoChooserTask(); BitmapImage bimg; int newPixelW ...