兰兰想的博客

脑海中的创意, 生活中的点滴
返回列表

PHP面向对象+ PDO 数据库映射对象

Wed Nov 13 2019 15:51:00 GMT+0800 (China Standard Time)


# 前言 简单展示一下php面向对象,使用PDO连接mysql数据库,把数据库读取的数据映射到我们的对象

常识部分

和 JAVA 的感觉差不多,通过class+类名来定义一个类 然后在里面写变量,例如我们定义一个 Person(人) 类, 然后给他一个$realname(真实姓名) 用 public function 来定义方法,一个 get 一个 set , 具体看下面的示例文件吧, 用 Phpstorm 可以按住 alt+insert 来快速生成 get,set

示例文件 [Person.php]

<?php
class Person
{
public $realname;

    /**
     * @return mixed
     */
    public function getRealname()
    {
        return $this->realname;
    }

    /**
     * @param mixed $realname
     */
    public function setRealname($realname): void
    {
        $this->realname = $realname;
    }
}

类的基本构建

在 phpstorm 里可以alt+insert快速插入一个 constructor(构建器) 你也可以自己手动输入 public function __construct 然后后面是你的参数

例如:(是用的本文下面 User类的例子)

public function __construct($username, $birthday)
{
    $this->username = $username;
    $this->birthday = $birthday;
}

类的继承

使用 extends 可以进行类的继承,比如我们新建一个User(用户)类,然后继承Person类, 就是class User extends Person, 记得在开始require你的Person类,将类引入.

require和include区别? incluce 在用到时加载 require 在一开始就加载 _once 后缀表示已加载的不加载

当想获取父类值时,我这里返回了父类的方法(刚开始学不知道对不对..) 如:return parent ::getRealname();

示例文件 [User.php]

<?php
require 'Person.php';

class User extends Person
{
public $username;
public $birthday;



    public function getRealname()
{
    return parent::getRealname(); // TODO: Change the autogenerated stub
}

    /**
     * @param mixed $realname
     */
    public function setRealname($realname): void
    {
        $this->realname = $realname;
    }

    /**
     * @param mixed $username
     */
    public function setUsername($username): void
    {
        $this->username = $username;
    }

    /**
     * @return mixed
     */
    public function getUsername()
    {
        return $this->username;
    }

}

PDO连接数据库映射对象

fetchALL中fetch class,后面参数跟上类名 在下面的示例中,我们使用了上面的Person和User类 将fetch到的结果(是个数组)给了$row这个变量; 然后循环输出所有的结果

参考文件 [index.php]

<?php

require 'User.php';

$link=new PDO('mysql:host=主机地址;dbname=数据库名','数据库用户名','数据库密码');

$row=$link->query('select * from users')->fetchAll(PDO::FETCH_CLASS,'User');

$i=0;
$row[0]->setRealname('张小明');
echo '<br>';
echo $row[0]->getRealname();

while ($i<count($row)){
    echo $row[$i]->username.'<br>';


    echo $row[$i]->birthday.'<br>';
    echo $row[$i]->gender.'<br>';
    $i++;
}


$just_test=new User();

$just_test->setRealname("你好");

echo $just_test->getRealname();
echo '<br>';
$just_test->setUsername("nihao");
echo $just_test->getUsername();

参考

PDO和MySQLi区别与选择? 类的自动加载 构造函数和析构函数

返回列表

相关文章

更规范的HTML5标签

阅读 9/22/2022, 7:38:00 PM

关于同构JavaScript的一些内容(同构JavaScript应用开发读书笔记)

阅读 4/26/2022, 8:05:58 PM

Restful Web service读书笔记

阅读 4/26/2022, 9:13:00 AM

前端注意的事情rail

阅读 4/9/2022, 6:19:30 PM

在自己做前端时需要做的四个核心内容

阅读 4/9/2022, 6:12:28 PM

IDEA SECTOR