Your cart is currently empty!
PHP面向对象+ PDO 数据库映射对象
前言
简单展示一下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();
发表回复