php面向对象DB封装类总结
一,面向对象编程思想:
1.面向对象是一种编程思想
2.面向队形是以对象事物为中心的编程思想
3.面向过程着重于做什么,面向对象着重谁来做
类和对象的关系
- 类是类别,分类,概念,无形的,看不见的
- 对象是具体的,对象由类产生,一个类可以产生n个对象
- 类和函数相似,都是代码封装而成的,都有驻留内存,但类内存少,对象占用内存多。
面向对象的优点:易扩展,适合项目开发
面向对象的三大特性:封装,继承,多态
二,类的封装
类里边只有属性和方法
class Student
{
//定义学生类的属性
public $no;
public $name;
//方法定义
public function study()
{
echo '学生在学习';
}
}
属性:class是定义类的关键字,为类名,类名为student最好选择驼峰式命名
用$定义,前边需要加上修饰符
- php中有3中访问修饰符:public protected private;
- public:表示公有的;可在本类、子类、对象实例中访问。
- protected:表示受保护的;可在本类、子类中访问;不能在对象实例中访问。
- private:表示私有的;可在本类中访问;不能在子类、对象实例中访问。
方法:function是定影方法的关键字,study为方法名,()里边可以有参数,也可以没有参数
实例化对象:实例化对象可以创建一个对象,通过对象访问其属性和方法。
实例化对象: $ obj=new className ()小括号可有可无
一个类可以创建千千万万个对象,每个对象都占用内存。
$ obj=new className ()
//实例化对象
$obj = new Student();
属性赋值需要用->赋值
//赋值
$->obj = '1805001';
$obj->name = "张三";
调用执行方法:$obj->study();
构造方法:构造方法的作用, 对象初始化。例如,给对象属性赋值、数据库对象初始化(连接、选择数据)
function __construct(){}
析构方法:
构造方法一般不需要主动调用。网页执行完毕时,对象销毁前,自动调用,构造方法的作用,垃圾回收工作,例如,断开到mysql的连接。
function __construct(){}
function __destruct()
{
//关闭数据库连接,
mysqli_close($this->$连接);
echo "断开数据库连接";
}
引用文件:include,include_once,require,require_once
DB类的封装
需要知道的一些函数:
mysqli_connect:连接数据库
mysqli_connect_errno(): 函数返回上一次连接错误的错误代码
mysqli_connect_error(): 函数返回上一次连接错误的错误描述,返回错误代码值,如果没有错误发生则返回 0
mysqli_set_charset():设置字符集
mysqli_close:关闭数据库
//删除数据
function del($table,$where ='1=1')
{
$values = '';
foreach ($where as $k => $v) {
$values .= "{$k}='{$v}',";
}
$values = rtrim($values, ',');
$condition = '';
if (is_array($where)) {
foreach ($where as $k => $v) {
$condition .= " {$k}='{$v}' and";
}
$condition = substr($condition, 0, 2);
} else {
$condition = $where;
}
$sql = "delete from {$table} where ($condition)";
//执行sql指令
$ret = mysqli_query($this->save, $sql);
return $ret;
}
//修改数据
function update($table, $data, $where = '1=1')
{
if (!is_array($data)) {
die('第二个参数必须是数组');
}
$values = '';
foreach ($data as $k => $v) {
$values .= "{$k}='{$v}',";
}
$values = rtrim($values, ',');
$condition = '';
if (is_array($where)) {
foreach ($where as $k => $v) {
$condition .= " {$k}='{$v}' and";
}
$condition = substr($condition, 0, -3);
} else {
$condition = $where;
}
$sql = "update {$table} set {$values} where {$condition}";
$ret = mysqli_query($this->save, $sql);
}
增加:$db->add('student',['no'=>'123','name'=>'张三','sex'=>'女','age'=>30]);
删除:$db->del('student',['no'=>'1831148']);
修改:$db->update('student',['no'=>'568','name'=>'小红']);
查询:
$db->getALL('student');
$arr = $db->getALL('student','no,name');
print_r($arr);