PHPday06

PHP的oop编程
不换行空格                            常规空格的宽度
半角空格                                 一个字母的宽度
全角空格                               一个字的宽度
窄空格                                    半个字母的宽度

访问修饰符
               public        proteced            private
外部              Y                  N                        N
子类中          Y                  Y                        N
父类中          Y                  Y                        Y

类实例化成对象
面向对象:封装、继承、多态
$变量 = new 类()
调用:$变量->属性(前不加$)=可以重新赋值

关键字
class:类
this:$this->属性.【可以区分全局、局部变量】
self :本类,一般调用静态变量、静态方法
parent:父类,parent::类名()
final:修饰类和方法,最终类不能继承、最终方法不能重写
static:属于类,静态
调用:类名::($变量)或者(方法)
静态方法内只能调用静态变量
const:类常量
调用:类名::常量,不能修改,不能修饰方法

方法
普通方法:function 方法名()
构造方法:function __construct(变量)
析构方法:function __destruct(变量),调用放在后面
继承:class 子类名 extends 父类名,实例化子类可以调用父类的方法
重写:重写后就调用子类不调用父类

抽象类和接口
抽象类:abstract,不能实例化。继承抽象类必须实现抽象方法,否则会报错。
抽象方法:没有方法体。有一个抽象方法就为抽象类。
接口:interface 接口名{
          function 方法名(变量名)
      }
类 :class 类名 implements 接口名1、接口名2【接口必须实现】
接口里的方法只能是public,类可以同时实现多个接口
抽象类相当于一类事物的规范
接口相当于组成事物的零件的规范

单例模式:只用一个对象,类不允许继承

<?php 
header("Content-type:text/html;charset=utf-8");
final class MySQL{
    public $r;
    static public $s;
    private function __construct(){
    	$this->r = rand(100000,999999);
    	echo $this->r."<br/>";
    }
    static public function get(){
    	if(is_null(self::$s))
    	{
    		self::$s = new MySQL();
    	}
    	return self::$s;
    }
}
$A = MySQL::get();
$B = MySQL::get();
$C = MySQL::get();
$D = MySQL::get();
$E = MySQL::get();
var_dump($A);
var_dump($B);
var_dump($C);
var_dump($D);
var_dump($E);

连接数据库对象:$mysql = new mysqli(“localhost”,“root”,“123456”,“表名”);

<?php 
header("Content-type:text/html;charset=utf-8");
$mysql = new mysqli("localhost","root","123456","feng02");
//var_dump($mysql);
//$mysql->query("set names utf8");
//$mysql->set_charset("utf8");//数据库已设置
$sql = "select * from student";
$r = $mysql->query($sql);
//var_dump($r);//出来的是一个结果集对象
//$row = $r->fetch_assoc();
//var_dump($row);查询一个
//查询多个
$D = array();
while($row = $r->fetch_assoc())
{
	$D[] = $row;
}
var_dump($D);

用mysql.php连接数据库
新用PS

<?php
/**
 * Created by 風
 */
header("Content-type:text/html;charset=utf-8");
abstract class aDB{
    /**
     * 连接数据库
     */
    abstract public function conn();
    /**
     * 查询多行数据
     */
    abstract public function getAll($sql);
    /**
     * 单行数据
     */
    abstract public function getRow($sql);
    /**
     * 查询单个数据 如 count(*)
     */
    abstract public function getOne($sql);
    /**
     * 执行删除/修改/更新的SQL操作
     */
    abstract public function Exec($sql);
    /**
     * 返回上一条insert语句产生的主键值
     */
    abstract public function lastId();
    /**
     * 返回上一条语句影响的行数
     */
    abstract public function affectRows();
}
class MySql extends aDB{
    public $link = null;
    public function __construct()
    {
        $this->link = new mysqli("localhost","root","123456","feng02");
        //$this->link->set_charset("utf8");数据库已设置
    }
    public function conn(){
        return $this->link;
    }
    public function getAll($sql){
        $res = $this->link->query($sql);
        $D = array();
        while($row = $res->fetch_assoc())
        {
            $D[] = $row;
        }
        return $D;
    }
    public function getRow($sql){
        $res = $this->link->query($sql);
        $row = $res->fetch_assoc();
        return $row;
    }
    public function getOne($sql){
        $res = $this->link->query($sql);
        $D = $res->fetch_row()[0];
        return $D;
    }
    public function Exec($sql){
        $this->link->query($sql);
    }
    public function lastId()
    {
        return $this->link->insert_id;
    }
    public function affectRows(){
        return $this->link->affected_rows;
    }
}
$x = new MySql();
//$sql = "select * from student";
//$D = $x->getAll($sql);
$sql = "select name from student where id=2";
$D = $x->getOne($sql);
var_dump($D);

PDO的预处理

<?php
/**
 * Created by 風
 */
header("Content-type:text/html;charset=utf-8");
//PDO预处理机制可以有效的防止SQL注入风险。
$dsn = 'mysql:dbname=feng02;host=localhost;charset = utf8';
$user = 'root';
$password = '123456';
try {
    $pdo = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}
/*$sql = "select * from student";
$res = $pdo->query($sql);
//var_dump($res);
$array = $res->fetchAll();
var_dump($array);
*/
//pdo的预处理
$sql = "select * from student where id > ? and age > ?";
$stat = $pdo->prepare($sql);
$id = 5;
$age = 30;
$stat->bindParam(1,$id);
$stat->bindParam(2,$age);
$stat->execute();
$array = $stat->fetchAll();
var_dump($array);

----------------------------------------------------------------------------------next还有next

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值