面向对象设计 2 —— PHP5面向对象基础(实例部分)

如果描述不清 请参见
[color=red][size=medium][b][url=http://llying.iteye.com/blog/339800]基础部分[/url][/b][/size][/color]

DROP TABLE IF EXISTS `person`;
CREATE TABLE `person` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(255) default NULL,
`age` int(11) default NULL,
`password` varchar(8) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records
-- ----------------------------
INSERT INTO `person` VALUES ('1', '张三', '20', '123456');
INSERT INTO `person` VALUES ('2', '李四', '30', '12345');
INSERT INTO `person` VALUES ('3', '王五', '50', '123456');



<?
//数据库配置文件 db_config.php
$db_server = "localhost";
$db_user = "root";
$db_pwd = "";
$db_name = "php";
?>



<?
//个纯粹面向过程的方式来读取数据库中的用户信息。
//viewuser_mysql.php
require_once("db_config.php");//包含配置文件
$sql = "select * from person where name = '张三'";

$conn = mysql_pconnect($db_server,$db_user,$db_pwd);//建立连接
mysql_query("SET NAMES gbk");//指定数据库字符集,一般放在连接数据库后面
$my_db = mysql_select_db($db_name,$conn);//选择数据库
$result = mysql_query($sql,$conn);//执行查询
$userInfo = mysql_fetch_array($result);//返回查询结果到数组


$name = $userInfo["name"];//从结果数据中取出数据
$age = $userInfo["age"];
$password = $userInfo["password"];

echo "your name is ".$name."<br>";//输出数据
echo "your age is ".$age."<br>";
echo "your password is ".$password."<br>";
mysql_close($conn);
/**
* 这个思维模式我们太熟悉不过了。
* 1. 读取配置文件中的数据库参数。
* 2. 建立数据库连接。
* 3. 选择数据库。
* 4. 执行sql语句。
* 5. 将数据返回给数组。
* 6. 将每个数据内容取出。
* 7. 将信息显示。
*/
?>



<?
//面向对象的取数据库信息的内容。
//class_user.php
class UserInfo{
private $name;
private $password;
private $age;
private $userInfo;//存储数据库返回信息的数组变量

public function __construct($name){
require_once("db_config.php");//包含配置文件
$sql = "select * from person where name = '$name'";

$conn = mysql_pconnect($db_server,$db_user,$db_pwd);//建立连接
mysql_query("SET NAMES gbk");//指定数据库字符集,一般放在连接数据库后面
$my_db = mysql_select_db($db_name,$conn);//选择数据库
$result = mysql_query($sql,$conn);//执行查询
$this->userInfo = mysql_fetch_array($result);//返回查询结果到数组
mysql_close($conn);
$this->getInfo();//调用传递信息的方法
}
//获取信息传递给属性的方法
private function getInfo(){
$this->name = $this->userInfo["name"];
$this->password = $this->userInfo["password"];
$this->age = $this->userInfo["age"];
}

//返回每个属性的public方法
public function getName(){
return $this->name;
}
public function getPassword(){
return $this->password;
}
public function getAge(){
return $this->age;
}
}
//class好像麻烦了些,但优点是结构清晰、扩展、重用和维护方便。
?>



<?
//viewuser.php
/**
* 显示用户 张三 的信息需要几步?
* 1. 创建 张三 出来。
* 2. 让这个 张三 告诉我们关于他的信息内容。
* 3. 显示这些信息。
*/
require_once("class_user.php");

$user = new UserInfo("张三");//创建一个user对象

$name = $user->getName();//分别调用方法取得数据
$password = $user->getPassword();
$age = $user->getAge();

echo "your name is ".$name."<br>";//输出数据
echo "your age is ".$age."<br>";
echo "your password is ".$password."<br>";

/**
* 张三 这个对象是如何创建的?创建时候做了什么?从那个服务器读取的?
* 从那个数据库读取的?从那个表单读取的?张三 的信息是如何读取的?
* 这些问题,在这里我们不需要再考虑。写刚才那个user类的时候,已经考虑过了。
* 使用这个对象,就像使用家里的冰箱和微波炉一样方便、自然。
* 把 张三 换成换成 李四 试试?
*/
?>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值